Count Complete Tree Nodes
2015-07-11 00:01
543 查看
/**
* 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:
void traverseLeft(TreeNode* root, int& h)
{
if(root == NULL)
{
return;
}
++ h;
traverseLeft(root -> left, h);
}
void traverseRight(TreeNode* root, int& h)
{
if(root == NULL)
{
return;
}
++ h;
traverseRight(root -> right, h);
}
int countNodes(TreeNode* root)
{
if(root == NULL)
{
return 0;
}
int h1 = 1;
int h2 = 1;
traverseLeft(root -> left, h1);
traverseRight(root -> right, h2);
if(h1 == h2)
{
return pow(2, h1) - 1;
}
//int h = max(h1, h2);
return countNodes(root -> left) + countNodes(root -> right) + 1;
}
};
相关文章推荐
- 记 Ubuntu14.04 Monodevelop 安装的两个问题
- [LeetCode][Java] Reverse Nodes in k-Group
- Node.js执行存储过程
- node.js的npm安装
- 在nodeschool学习git
- 一次使用NodeJS实现网页爬虫记
- Nodejs中when库的实例介绍
- 查看CPU处于哪个node
- nodejs【伪】入门教程
- LeetCode Count Complete Tree Nodes
- ubuntu nodejs + express4.x 安装 测试
- 通过官方网站的资料学习node
- Leetcode#24 Swap Nodes in Pairs
- Webpack 性能优化 (一)(使用别名做重定向)
- Node.js 应用性能优化的五个技巧
- [LintCode] Remove Node in Binary Search Tree
- [LeetCode][Java] Remove Nth Node From End of List
- LeetCode222 Count CompleteTree Nodes(计算完全二叉树的节点数) Java 题解
- Node.js学习笔记 02 Implementing flow control
- Socket.IO 和 Node.js 入门(转)