完全二叉树节点数
来源:互联网 发布:js微信短网址生成api 编辑:程序博客网 时间:2024/05/13 09:19
给定一棵完全二叉树的头节点head,返回这棵树的节点个数。如果完全二叉树的节点数为N,请实现时间复杂度低于O(N)的解法。
#include <iostream>using namespace std;class TreeNode{public:int val;TreeNode* left;TreeNode* right;TreeNode(int val) :val(val), left(NULL), right(NULL){}};class Solution{public:TreeNode* InitTree(TreeNode* &root){char ch = NULL;cin >> ch;if ('#' == ch){root = NULL;}else{root = new TreeNode(atoi(&ch));InitTree(root->left);InitTree(root->right);}return root;}int GetAllTreeNode(TreeNode* root){int allHeight = 0, rightHeight = 0;int nodeCount = 0;while (NULL != root){allHeight = getHight(root);rightHeight = getHight(root->right);root = allHeight == rightHeight + 1 ? root->right : root->left;nodeCount += (1 << rightHeight);}return nodeCount;}//计算完全二叉树的深度int getHight(TreeNode* root){TreeNode* p = root;int count = 0;while (NULL != p){count++;p = p->left;}return count;}};int main(){TreeNode* root = NULL;Solution s;root = s.InitTree(root);s.GetAllTreeNode(root);return 0;}
0 0
- 完全二叉树节点数
- 完全二叉树节点数
- 统计完全二叉树的节点数
- 统计完全二叉树的节点数
- 完全二叉树结点数
- 完全二叉树,知道总节点数,计算叶子结点的数量
- Count Complete Tree Nodes 统计完全二叉树的节点数
- leetcode 222 Count Complete Tree Nodes (计算完全二叉树节点数)
- LeetCode222 Count CompleteTree Nodes(计算完全二叉树的节点数) Java 题解
- leetcode222---Count Complete Tree Nodes(求完全二叉树节点数)
- LeetCode 222. Count Complete Tree Nodes(完全二叉树节点数统计)
- 求完全二叉树的节点数 时间复杂度小于O(N)
- 222. Count Complete Tree Nodes | 完全二叉树的节点数
- 完全二叉树求叶子节点个数
- 完全二叉树的节点个数
- 计算二叉树的高度、节点数、叶子节点数
- 二叉树问题---统计完全二叉树的节点个数
- 有关完全二叉树求节点数和前缀树求字符串是否重复的两道算法题
- HDU 1005 Number Sequence (找循环节)
- 一个经典例子让你彻彻底底理解java回调机制
- 八皇后问题(回溯法)
- iOS开发技巧:设置状态样式
- 得到安卓所有已安装程序的信息
- 完全二叉树节点数
- 坑爹的Unity与Android交互
- 两种方法实现类微博tabBar,并跳转页面隐藏
- Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用
- ajax
- 安装window操作系统
- Linux内存占用过高?非也
- 【深度反思】:环境影响人的非常重要的因素
- C++作用域