题目描述
这个完全二叉树的节点计算是有公式的,但是比较麻烦不考虑。用迭代法也比较简单,每次计数即可。
用递归法做的时候与求最大深度差不多,现在只不过是累加罢了
代码实现
class Solution {
private:
int getnums(TreeNode *root)
{
if(root == NULL)
{
return 0;
}
int leftnums = getnums(root->left);
int rightnums = getnums(root->right);
// 每次返回当前节点下的节点数
return leftnums + rightnums +1;
}
public:
int countNodes(TreeNode* root) {
return getnums(root);
}
};