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

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

时间:2023-04-04 19:45:23浏览次数:34  
标签:right int 222 二叉树 root 节点 left

给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。

完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。

class Solution {
public:
    int countNodes(TreeNode* root) {
        if(root == nullptr) return 0;
        TreeNode* left = root -> left;
        TreeNode* right = root -> right;
        int leftdepth = 0;
        int rightdepth = 0;
        while(left)
        {
            left = left->left;
            leftdepth++;
        }
        while(right)
        {
            right = right->right;
            rightdepth++;
        }
        if(leftdepth == rightdepth)
            return ((2<<leftdepth) - 1);
        return (countNodes(root->left)+countNodes(root->right) + 1);
    }
};

标签:right,int,222,二叉树,root,节点,left
From: https://www.cnblogs.com/lihaoxiang/p/17287704.html

相关文章

  • 111. 二叉树的最小深度
    给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。classSolution{public:intminDepth(TreeNode*root){if(root==nullptr)return0;if(!root->left&&!root->right......
  • 1、Clickhouse 单节点与集群部署
    一、单节点部署1.1、修改文件描述符 vim/etc/security/limits.conf*softnofile65536*hardnofile65536*softnproc131072*hardnproc131072 vim/etc/security/limits.d/20-nproc.conf*softnofile65536*hardnofile65536*softnproc131072*hard......
  • 动力节点王鹤SpringBoot3笔记——jdk新特性
    一、JDK关注的新特性1.1搭建学习环境JDK:JDK19OpenJDK:https://jdk.java.net/19/LibericaJDK:​​https://bell-sw.com/pages/downloads/​​,是一个OpenJDK发行版,为云原生,容器特别优化。Maven:构建和依赖管理,版本选择3.6以上配置本地仓库和阿里云镜像IDEA2022.3.1Ulti......
  • 104.二叉树的最大深度
    给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],classSolution{public:intgetdepth(TreeNode*node){if(node==NULL)return0;......
  • 树:剑指 Offer 54. 二叉搜索树的第k大节点
    题目描述:给定一棵二叉搜索树,请找出其中第k大的节点的值。 示例1:    示例2:    解题思路:本文解法基于此性质:二叉搜索树的中序遍历为递增序列。•根据以上性质,易得二叉搜索树的中序遍历倒序为递减序列。•因此,求“二叉搜索树第k大......
  • 代码随想录Day20-Leetcode654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验
    654.最大二叉树题目链接:https://leetcode.cn/problems/maximum-binary-tree/基本的模拟思路很快/***Definitionforabinarytreenode.*functionTreeNode(val,left,right){*this.val=(val===undefined?0:val)*this.left=(left===undefined......
  • 1519. 子树中标签相同的节点数
    题目描述给了一些点的连通关系,每个点的值都不同,每个点上都哟一个附加的标签(小写字母)问:每个节点i的子树中标签和i相同的节点数f1-无向图后序遍历基本分析怎么根据连接关系进行遍历?先建图遍历的时候没有方向,怎么保证不会回去?加一个父节点的参数,保证不会往前走?怎么维护当前节......
  • 树:剑指 Offer 37. 序列化二叉树
    题目描述:请实现两个函数,分别用来序列化和反序列化二叉树。你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列/反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示:输入输出格式与LeetCo......
  • 最小覆盖子串(哈希表、字符串)、两数之和(数组、哈希表)、二叉树的层序遍历 II(树、广
    最小覆盖子串(哈希表、字符串)给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。**注意:**如果s中存在这样的子串,我们保证它是唯一的答案。示例1:输入:s="ADOBECODEBANC",t="ABC"输出:"B......
  • Cassandra一个节点到底应该存放多大数据
    在Cassandra2.x版本及更早版本的时候,我经常建议用户单节点规模数据不要超过1T,到Cassandra3.x之后我又建议用户单节点规模不要超过4T。为什么会有这些变化,其实是跟基础设施的发展有关系的。一方面是随着SSD硬盘的越来越廉价,大部分用户使用SSD替换了机械硬盘提升了磁盘随机读写能......