LeetCode 222. 完全二叉树的节点个数

class Solution {
public:
    int countNodes(TreeNode* root) {
        if(!root)   return 0;
        auto l=root->left,r=root->right;
        int x=1,y=1;//记录左右两边层数
        while(l)    l=l->left,x++;
        while(r)    r=r->right,y++;
        if(x==y)    return (1<<x)-1;//如果是满二叉树,节点树可以直接计算
        else return 1+countNodes(root->left)+countNodes(root->right);
    }
};
posted @   穿过雾的阴霾  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示