222. Count Complete Tree Nodes
来源:互联网 发布:python 运行 编辑:程序博客网 时间:2024/05/03 20:25
Given a complete binary tree, count the number of nodes.
Definition of a complete binary tree from Wikipedia:
In a complete binary tree every level, except possibly the last, is completely filled, and all nodes in the last level are as far left as possible. It can have between 1 and 2h nodes inclusive at the last level h.
Definition of a complete binary tree from Wikipedia:
In a complete binary tree every level, except possibly the last, is completely filled, and all nodes in the last level are as far left as possible. It can have between 1 and 2h nodes inclusive at the last level h.
Subscribe to see which companies asked this question.
完全二叉树。思路是先找到树的高度h,如果右子树的高度为h-1的话证明最后一个节点在右子树,左子树为满树,因此res+=左子树的节点个数+根节点=2^(h-1),根节点移到右边。
如果右子树的高度不为h-1的话证明最后一个节点在左子树,右子树为满树,res+=右子树的节点个数+根节点=2^(h-2).根节点移到左边。
class Solution {public: int height(TreeNode* root){ return root==NULL ? -1 : height(root->left)+1; } int countNodes(TreeNode* root) { int sum=0, h=height(root); while(root){ if(height(root->right) == h - 1){ sum += pow(2,h); root = root->right; } else{ sum += pow(2,h-1); root = root->left; } h--; } return sum; }};需要注意的是这里为了计算方便,直接返回的h值就是实际的h值-1.比如叶子节点的高度是0.
0 0
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes
- 222. Count Complete Tree Nodes**
- 222. Count Complete Tree Nodes
- HashMap底层原理
- 机器学习笔记
- 排序算法总结
- JAVA下整形和String数组转换为列表
- Android Content Provider使用
- 222. Count Complete Tree Nodes
- Enum关键字
- 程序设计:1035:拼写检查——百炼oj
- [FZU] 1062 洗牌问题
- spark报错汇总
- 智能一代云平台(十七):Keepalived+Nginx实现高可用,反向代理---Keepalived安装及相关配置
- wordpress自定义打赏
- LeetCode twosum C++ map实现
- java formant(保留小数点小数位)