[leetcode-222]Count Complete Tree Nodes(c)
来源:互联网 发布:世界网络多少年了 编辑:程序博客网 时间:2024/06/06 04:12
问题描述:
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.
分析:这道题如果使用暴力搜索的话,时间复杂度为O(N),结果会TLE,然后改用一种递归的方式,每次对一个节点,求它的左节点的深度是否与右节点深度相同,如果相同,那以此为根节点的子树的个数为2^height-1,如果不同,那么就查左子树和右子树之和再加根节点。
代码如下:296ms
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */int getHeight(struct TreeNode* root,bool isRight){ int count = 0; while(root) { count++; if(isRight) root=root->right; else root=root->left; } return count;}int countNodes(struct TreeNode* root) { if(!root) return 0; int leftHeight = getHeight(root,false);//左子树的深度 int rightHeight = getHeight(root,true);//右子树的深度 if(leftHeight==rightHeight){ return pow(2,leftHeight)-1; }else{ return countNodes(root->left)+countNodes(root->right)+1; }}
0 0
- [leetcode-222]Count Complete Tree Nodes(c)
- leetcode 222: Count Complete Tree Nodes
- Count Complete Tree Nodes - LeetCode 222
- Leetcode[222]-Count Complete Tree Nodes
- leetcode #222 Count Complete Tree Nodes
- [Leetcode 222, Medium] Count Complete Tree Nodes
- Leetcode #222 Count Complete Tree Nodes
- LeetCode(222)Count Complete Tree Nodes
- [LeetCode 222]Count Complete Tree Nodes
- Leetcode 222: Count Complete Tree Nodes
- [leetcode] 222 Count Complete Tree Nodes
- [leetcode 222]Count Complete Tree Nodes
- leetcode 222:Count Complete Tree Nodes
- LeetCode 222 Count Complete Tree Nodes
- LeetCode题解-222-Count Complete Tree Nodes
- LeetCode 222 Count Complete Tree Nodes
- [LeetCode] Count Complete Tree Nodes
- leetcode - Count Complete Tree Nodes
- GCD大白话
- Strurts2下导出Excel文件(含下载弹出框)
- POJ_2528 Mayor's poster(线段树+离散化)
- 使用.NET中的XML注释(一) -- XML注释标签讲解
- 没有绝对公正——而是竞争
- [leetcode-222]Count Complete Tree Nodes(c)
- Torch7 doc
- 插值技术之Catmull-Rom Spline Interpolating(2)
- 百度之星1005 序列变换(lis)
- HDOJ 2068 RPG的错排(排列组合+错排)
- (待翻译)github入门之遇到SSH Permission Denied问题的原因和解决
- 投篮,当投篮率为多少时,选择玩法1或者玩法2
- strdup 的用法
- 重构的基本概念和原则