Leetcode Balanced Binary Tree
来源:互联网 发布:局域网网络监控工具 编辑:程序博客网 时间:2024/06/07 07:15
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees ofevery node never differ by more than 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: bool isBalanced(TreeNode* root) { if(root == NULL) return true; int left = depth(root->left,1); int right = depth(root->right,1); return isBalanced(root->left) && isBalanced(root->right) && abs(left-right)<2; } int depth(TreeNode* root,int count) { if(root == NULL) return count; int left = depth(root->left,count+1); int right = depth(root->right,count+1); return left>right?left:right; }};
这个排名也是醉了,写代码的时候就该算法存在不少重复计算,效率低下。现对上述代码进行优化,需要注意传入的count参数再函数调用后需要实时使用,所以需要使用引用,否而只会在传参的时候复制而不改变原来的变量值。优化后代码如下:
class Solution {public: bool isBalanced(TreeNode* root) { int h=0; return depth(root,h); } bool depth(TreeNode* root,int& count) { if(root == NULL) { count = 0; return true; } int left,right; if(depth(root->left,left) && depth(root->right,right) && abs(left-right)<2) { count = 1+(left>right?left:right); return true; } return false; }};
阅读全文
0 0
- LeetCode: Balanced Binary Tree
- [LeetCode]Balanced Binary Tree
- LeetCode Balanced Binary Tree
- [Leetcode] Balanced Binary Tree
- LeetCode : Balanced Binary Tree
- LeetCode Balanced Binary Tree
- [LeetCode] Balanced Binary Tree
- 【leetcode】Balanced Binary Tree
- [LeetCode]Balanced Binary Tree
- [LeetCode] Balanced Binary Tree
- [Leetcode]Balanced Binary Tree
- [leetcode]Balanced Binary Tree
- Leetcode: Balanced Binary Tree
- LeetCode-Balanced Binary Tree
- LeetCode - Balanced Binary Tree
- [LeetCode] Balanced Binary Tree
- LeetCode | Balanced Binary Tree
- 【leetcode】Balanced Binary Tree
- php连接及读取和写入mysql数据库的常用代码
- mysql索引总结----mysql 索引类型以及创建
- mysql 分数排名
- 使用maven执行testng特定组时,报错Nullpointer
- (4)按从小到大的顺序排列数组中的元素
- Leetcode Balanced Binary Tree
- 基于视窗的自适应网站
- 2017-06-27 每日一记 myeclipse里的代码折叠
- CRC校验
- App 扫描二维码登陆网站
- C语言的函数调用约定(stdcall+cdecl+thiscall+fastcall)
- 2 手写实现SpringMVC,第二节:自定义注解及反射赋值
- maven 不同环境变量切换
- JAVA里Properties类 学习使用