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.
?
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isBalanced(TreeNode root) { if (solve(root) == -1) { return false; } return true; } private int solve(TreeNode root) { if (root == null) { return 0; } int left = solve(root.left); if (left == -1) { return -1; } int right = solve(root.right); if (right == -1) { return -1; } if (Math.abs(left-right) > 1) { return -1; } else { return Math.max(left, right)+1; } } }
?
原文:http://hcx2013.iteye.com/blog/2238872