LeetCode 222. Count Complete Tree Nodes

来源:互联网 发布:ca证书检测网络未连接 编辑:程序博客网 时间:2024/06/04 19:03

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, is completely filled, and all nodes in the last level are as far left as possible. It can have between 1 and 2h nodes inclusive at the last level h.


    int countHelper(TreeNode* root) {  // do it recursively!         if(!root) return 0;        TreeNode* l = root;        TreeNode* r = root;        int leftCount = 0, rightCount = 0;        while(l) {            leftCount++;            l = l->left;        }                while(r) {            rightCount++;            r = r->right;        }        if(leftCount == rightCount) return pow(2, rightCount) - 1;        else return countHelper(root->left) + countHelper(root->right) + 1;    }    int countNodes(TreeNode* root) {        return countHelper(root);    }


0 0
原创粉丝点击