Leetcode: Balanced Binary Tree
2013-07-11 09:59
302 查看
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.
Top down solution.
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.
Top down solution.
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isBalanced(TreeNode root) { // Start typing your Java solution below // DO NOT write main() function if(root == null) return true; while(root != null){ int left = maxHeight(root.left); int right = maxHeight(root.right); if(Math.abs(left - right) > 1) return false; else return isBalanced(root.left) && isBalanced(root.right); } return false; } public int maxHeight(TreeNode root){ if(root == null) return 0; int left = maxHeight(root.left) + 1; int right = maxHeight(root.right) + 1; return left > right ? left : right; } }Bottom up solution.
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isBalanced(TreeNode root){ // Start typing your Java solution below // DO NOT write main() function return decide(root) >= 0 ? true : false; } public int decide(TreeNode root){ if(root == null) return 0; int left = decide(root.left); int right = decide(root.right); if(left < 0 || right < 0 || Math.abs(left - right) > 1) return -1; return left > right ? left + 1 : right + 1; } }
相关文章推荐
- 开始刷题leetcode day3:Balanced Binary Tree
- [leetcode]Balanced Binary Tree
- [leetcode]Balanced Binary Tree
- LeetCode:Balanced Binary Tree
- leetcode 110. Balanced Binary Tree
- LeetCode Balanced Binary Tree
- leetcode - Balanced Binary Tree
- leetcode 110. Balanced Binary Tree
- [leetcode刷题系列]Balanced Binary Tree
- 【leetcode】110. Balanced Binary Tree
- 110.Balanced Binary Tree Leetcode解题笔记
- LeetCode: Balanced Binary Tree 解题报告
- [LeetCode]110. Balanced Binary Tree
- leetcode 110 —— Balanced Binary Tree
- leetcode-110 Balanced Binary Tree
- LeetCode(24)-Balanced Binary Tree
- 《leetCode》:Balanced Binary Tree
- Balanced Binary Tree——LeetCode
- LeetCode 110 : Balanced Binary Tree
- [leetcode: Python] 110. Balanced Binary Tree