首页 > 其他分享 >LeetCode 222. 完全二叉树的节点个数

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

时间:2023-05-24 14:23:05浏览次数:47  
标签:right return int 222 二叉树 countNodes root LeetCode

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);
    }
};

标签:right,return,int,222,二叉树,countNodes,root,LeetCode
From: https://www.cnblogs.com/tangxibomb/p/17428173.html

相关文章

  • 二刷Leetcode-Days07
    动规:/***70.爬楼梯*@paramn*@return*/publicintclimbStairs(intn){if(n<=2){returnn;}int[]dp=newint[n];dp[0]=1;dp[1]=2;for(inti=2;i......
  • 加分二叉树
    题目描述设一个\(n\)个节点的二叉树\(\text{tree}\)的中序遍历为\((1,2,3,\ldots,n)\),其中数字\(1,2,3,\ldots,n\)为节点编号。每个节点都有一个分数(均为正整数),记第\(i\)个节点的分数为\(d_i\),\(\text{tree}\)及它的每个子树都有一个加分,任一棵子树\(\text{subtree}\)......
  • LeetCode 62.不同路径
    1.题目:一个机器人位于一个mxn 网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?示例1:输入:m=3,n=7输出:28来源:力扣(LeetCode)链接:https://leetcode.c......
  • leetcode2215哈希列表的应用
    哈希列表存储的是不重复的元素,使用两个哈希列表存储这两个数组。再遍历其中一个哈希列表,查看是否存在另一个哈希列表中set.insert()set1.count(元素)for(intnum:nums1){set1.insert(num);}for(intnum:set1){if(!set2.count(num)){res[0].push_back(num);......
  • 代码随想录算法训练营第十四天|144. 二叉树的前序遍历、145. 二叉树的后序遍历、94.
    【参考链接】1.满二叉树,完全二叉树,二叉搜索树(有数值,有序树)。2.平衡二叉搜索树:又被称为AVL(Adelson-VelskyandLandis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。3.优先级队列其实是一个堆,堆就是一棵完全二叉......
  • 算法刷题记录:NC22227 约瑟夫环
    题目链接https://ac.nowcoder.com/acm/problem/22227解题思路模拟环。这道题顺序数就行,顺序是逆时针,逆时针的箭头是往左拐的,变成直线后趋于正半轴所以是+。不过,这道模拟环并没有说从idx号开始,往左/右数几个人,所以不需要考虑+或-。因为不会越界,所以也不用额外%n。AC代码......
  • bst中序-leetcode230二叉搜索树第k个元素
    给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从1开始计数)。示例1:输入:root=[3,1,4,null,2],k=1输出:1示例2:输入:root=[5,3,6,2,4,null,null,1],k=3输出:3提示:树中的节点数为 n 。1<=k<=n<=1040<=Node.val<......
  • 图解LeetCode——793. 阶乘函数后 K 个零(难度:困难)
    一、题目 f(x) 是 x! 末尾是0的数量。回想一下 x!=1*2*3*...*x,且0!=1 。例如, f(3)=0 ,因为3!=6的末尾没有0;而f(11)=2 ,因为11!=39916800末端有2个0。给定 k,找出返回能满足f(x)=k 的非负整数x 的数量。二、示例2.1>示例1:【输入......
  • 图解LeetCode——剑指 Offer 34. 二叉树中和为某一值的路径
    一、题目给你二叉树的根节点root和一个整数目标和targetSum,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。叶子节点是指没有子节点的节点。二、示例2.1>示例1:【输入】root=[5,4,8,11,null,13,4,7,2,null,null,5,1],targetSum=22【输出】[[5,4,11,2],[5,......
  • 图解LeetCode——662. 二叉树最大宽度(难度:中等)
    一、题目给你一棵二叉树的根节点root,返回树的最大宽度。树的最大宽度是所有层中最大的宽度。每一层的宽度被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的null节点,这些null节点也计入长......