LeetCode(110) Balanced Binary Tree解题报告
来源:互联网 发布:linux和windows的优劣 编辑:程序博客网 时间:2024/04/30 14:24
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 of every node never differ by more than 1.
解题思路:
求左子树与右子树的深度之差,如果满足,分别递归左子树和右子树。但是这样有大量的重复计算,所以参考网上的一种做法,利用val来存深度,下面附上两次的代码。
public class Solution { public boolean isBalanced(TreeNode root) { if(root == null) return true; if(Math.abs(Depth(root.left)-Depth(root.right)) > 1) return false; return isBalanced(root.left) && isBalanced(root.right); } public int Depth(TreeNode root){ if(root == null) return 0; return Math.max(Depth(root.left)+1,Depth(root.right)+1); }}
改进解法:
public class Solution { public boolean isBalanced(TreeNode root) { if(root == null) return true; Depth(root); return balanced(root); } public boolean balanced(TreeNode root){ int l=0,r=0; if(root == null) return true; if(root.left != null) l = root.left.val; if(root.right != null) r = root.right.val; if(Math.abs(l-r) > 1) return false; return balanced(root.left) && balanced(root.right); } public int Depth(TreeNode root){ if(root == null) return 0; root.val = Math.max(Depth(root.left)+1,Depth(root.right)+1); return root.val; }
0 0
- LeetCode(110) Balanced Binary Tree解题报告
- [LeetCode]Balanced Binary Tree,解题报告
- 【LeetCode】Balanced Binary Tree 解题报告
- 【LeetCode】Balanced Binary Tree 解题报告
- [leetcode] 110. Balanced Binary Tree 解题报告
- [Leetcode] 110. Balanced Binary Tree 解题报告
- 【LeetCode】Balanced Binary Tree 算法优化 解题报告
- Leetcode 110. Balanced Binary Tree 平衡二叉树 解题报告
- LeetCode解题报告 110. Balanced Binary Tree [easy]
- [leetcode]110. Balanced Binary Tree@Java解题报告
- LeetCode(110)Balanced Binary Tree
- LeetCode 110 Balanced Binary Tree
- LeetCode: Balanced Binary Tree [110]
- LeetCode 110 Balanced Binary Tree
- [leetcode 110] Balanced Binary Tree
- leetcode-110 Balanced Binary Tree
- leetCode #110 Balanced Binary Tree
- [LeetCode 110]Balanced Binary Tree
- Company A面试 笔试 : 爬山 算步骤 问题
- servlet复习(二)HTTP Servlet API
- 使用golang的标准库搭建网站--3.模板函数
- 三大图片缓存库对比
- 通过wireshark,以及python代码收发邮件,了解smtp协议,pop协议工作过程
- LeetCode(110) Balanced Binary Tree解题报告
- androidstudio Error:(1, 1) 错误: 非法字符: '\ufeff' 解决办法
- android studio连接不上真机
- 常用纹理和纹理压缩格式
- Intellij idea搭建maven+springMVC开发项目(一)
- vi下如何删除当前行至后面所有的行
- AI
- const修饰的常量值 http://www.nowcoder.com/test/question/done?tid=2198842&qid=15952#summary
- 为什么用Yarn来做Docker容器调度引擎