标签:
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.
Given binary tree A = {3,9,20,#,#,15,7}
, B = {3,#,20,15,7}
A) 3 B) 3
/ \ 9 20 20
/ \ / 15 7 15 7
The binary tree A is a height-balanced binary tree, but B is not.
1 /** 2 * Definition of TreeNode: 3 * public class TreeNode { 4 * public int val; 5 * public TreeNode left, right; 6 * public TreeNode(int val) { 7 * this.val = val; 8 * this.left = this.right = null; 9 * } 10 * } 11 */ 12 public class Solution { 13 /** 14 * @param root: The root of binary tree. 15 * @return: True if this Binary tree is Balanced, or false. 16 */ 17 public boolean isBalanced(TreeNode root) { 18 if (root == null) return true; 19 if (Math.abs(height(root.left) - height(root.right)) > 1) return false; 20 return isBalanced(root.left) && isBalanced(root.right); 21 } 22 23 public int height(TreeNode root) { 24 if (root == null) return 0; 25 return Math.max(height(root.left), height(root.right)) + 1; 26 } 27 }
标签:
原文地址:http://www.cnblogs.com/beiyeqingteng/p/5652091.html