Given a complete binary tree, count the number of nodes.
Definition of a complete binary tree from :
In a complete binary tree every level, except possibly the last, is completely filled, and all nodes in the last level are as far left as possible. It can have between 1 and 2hnodes inclusive at the last level h.1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */10 class Solution {11 public:12 int countNodes(TreeNode* root) {13 if(root==NULL)14 return 0;15 TreeNode* tmp=root->left;16 int leftheight=1;17 int rightheight=1;18 while(tmp!=NULL)19 {20 tmp=tmp->left;21 leftheight++;22 }23 tmp=root->right;24 while(tmp!=NULL)25 {26 tmp=tmp->right;27 rightheight++;28 }29 if(leftheight==rightheight)30 {31 return (1<left)+countNodes(root->right)+1;35 }36 };