Given a complete binary tree, count the number of nodes.
Definition of a complete binary tree from Wikipedia:
In a complete binary tree every level, except possibly the last, was completely filled, and all nodes As far left as possible. It can has between 1 and 2hnodes inclusive at the last level H.
Topic: Given a complete binary tree, return the number of nodes of this binary tree.
Problem-solving ideas: The beginning of the hierarchy traversal, O (n), the results of tle, and later optimized, using a recursive way to do, the total number of nodes equal to the number of 1+ Zuozi + right subtree, because it is a complete binary tree, so for the subtree is full of two fork tree can be directly calculated results and return.
Public classSolution { Public intcountnodes (TreeNode root) {if(root==NULL){ return0; } TreeNode Left=root,right=Root; intCNT = 0; while(right!=NULL) { left=Left.left; Right=Right.right; CNT++; } if(left==NULL){ return(1<<cnt)-1; } return1+countnodes (Root.left) +countnodes (root.right); }}
Count Complete Tree Nodes--leetcode