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

说明:

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

示例:

输入: 1/ \2   3/ \  /
4  5 6输出: 6

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int countNodes(TreeNode* root) {
        if(!root) 
            return 0;
        int hl=0, hr=0;
        TreeNode *l=root, *r=root;
        while(l) 
        {
            hl++;
            l=l->left;
        }
        while(r) 
        {
            hr++;
            r=r->right;
        }
        if(hl==hr) 
            return pow(2,hl)-1;
        return 1+countNodes(root->left)+countNodes(root->right);
    }
};

222.完全二叉树的节点个数相关推荐

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

    222. 完全二叉树的节点个数 题目描述: 给你一棵 完全二叉树的根节点 root ,求出该树的节点个数. 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值 ...

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

    222. 完全二叉树的节点个数 给出一个完全二叉树,求出该树的节点个数. 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集 ...

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

    完全二叉树的节点个数 题目链接 描述 示例 初始代码模板 代码 题目链接 https://leetcode-cn.com/problems/count-complete-tree-nodes/ 描述 ...

  4. Leecode 222. 完全二叉树的节点个数——Leecode日常刷题系列

    题目链接:https://leetcode-cn.com/problems/count-complete-tree-nodes/ 题解汇总:https://leetcode-cn.com/proble ...

  5. 【Leetcode | 47】 222. 完全二叉树的节点个数

    给出一个完全二叉树,求出该树的节点个数. 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置.若最底 ...

  6. leetcode 222. 完全二叉树的节点个数(dfs)

    给出一个完全二叉树,求出该树的节点个数.说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置.若最底层为 ...

  7. LeetCode 222. 完全二叉树的节点个数(二分查找)

    1. 题目 给出一个完全二叉树,求出该树的节点个数. 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干 ...

  8. LeetCode 222. 完全二叉树的节点个数(递归)

    题目描述 给出一个完全二叉树,求出该树的节点个数. 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位 ...

  9. leetcode 222. Count Complete Tree Nodes | 222. 完全二叉树的节点个数(Java)

    题目 https://leetcode.com/problems/count-complete-tree-nodes/ 题解 思路参考左程云<程序员代码面试指南> 顺便贴一下草稿 代码 c ...

  10. 二叉树11:完全二叉树的节点个数

    Leetcode 222.完全二叉树的节点个数 要求是 给出一个完全二叉树,求出该树的节点个数. 完全二叉树的节点数其实是可以在找到最后一层最右侧的元素之后直接使用公式计算的.这里我们需要先明确什么是 ...

最新文章

  1. ceph中使用ceph-objectstore-tool将pg从incomplete标记为complete
  2. 一周焦点 | 最强AI芯片麒麟980发布;前端开发者将被取代?
  3. Logstash(三)filter插件简介
  4. Asp.net + Silverlight发布到IIS7
  5. PostgreSQL9.3中文手册的在线纠错
  6. 后端:推荐九款Java 性能优化工具,你都用过吗?
  7. 【算法分析与设计】证明插入排序的正确性
  8. php管道的概念,管道线的概念定义及分析技巧的讲解
  9. Shell 脚本语法
  10. 国内首款 FPGA 云服务器,性能是通用 CPU 服务器 30 倍以上
  11. layui开关按钮,checkbox复选框开关按钮效果美化
  12. EditText光标颜色设置
  13. HTML和Jsp 页面使用 shiro标签备忘录
  14. at android.widget.Toast$TN.handleShow(Toast.java:501)自定义布局异常
  15. 追星女孩彩虹屁情话土味情话合集100条
  16. WWF中Conditioned Activity Group的子Activity扩展CAG的WhenCondition属性代码解析
  17. 定了!阿里日成了“中国品牌日”! 老外说,原因都在这里了
  18. numpy中的ndarray方法和属性
  19. 记一次开发环境redis出现key丢失排查
  20. 二十世纪的十大科学骗局

热门文章

  1. Home Assistant系列 -- 设置界面语言与地理位置
  2. 【TensorFlow系列】【九】利用tf.py_func自定义算子
  3. npm升级所有可更新包
  4. Java之观察者模式
  5. 利用hexo搭建一个只属于你自己的博客
  6. 《从程序员到项目经理》学习笔记
  7. 谈一谈Oracle11gR2的审计管理
  8. [Linux] ubuntu 安装 Wireshark
  9. 一眼把人看穿之社交方式 如何辨别朋友的信任度
  10. 一个java文件可以有多个类嘛?