222. Count Complete Tree Nodes
来源:互联网 发布:下淘宝网手机版 编辑:程序博客网 时间:2024/06/06 06:33
/*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.完全二叉树:除了最后一层,第i+1层都有2^i个节点,最后一层可能缺失从右边开始连续的几个节点等比数列求和公式:Sn = a(1-q^n)/(1-q) 2^0 + 2^1 + 2^2+ ...+2^(n-1)=2^n -1寻找最后一层从右边数第一个不为空的节点,采用二分法查找,通过本节点的层数h(同过一直计算左支点的个数)与右节点的层数h2比较来把树分成两个子树,如果h==h2-1则说明左子树为满二叉树,则转向右子树计算......*//** * 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) {//Time linit exceeded if(!root) return 0; return countNodes(root->left)+countNodes(root->right)+1; } int height(TreeNode* root){ int i=0; while(root){ root=root->left; i++; } return i; } int countNodes(TreeNode* root) { int h=height(root); return h==0 ? 0 : height(root->right)==h-1 ? (1<<h-1) + countNodes(root->right) : (1<<h-2) + countNodes(root->left); }};
阅读全文
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
- TeemoAttacking
- 古文觀止卷九_梓人傳_柳宗元
- 恒流源电路的几种实现方式(已通过Proteus仿真验证)
- [BZOJ]1030: [JSOI2007]文本生成器 AC自动机+DP
- 胡思乱想
- 222. Count Complete Tree Nodes
- QT(windows10+VS2015)
- ACM周中总结—9月14日
- SpringAOP使用注意三点
- 原码反码补码移码的理解及C语言验证
- 什么是Monkey Patch猴子补丁
- matlab的legend用法
- redis笔记
- 为什么说Java匿名内部类是残缺的闭包