public boolean isBalanced(TreeNode root) {
if (getHeight(root) == -1){
return false;
}
return true;
}
public int getHeight(TreeNode root) {
if (root == null)
return 0;
int left = getHeight(root.left);
int right = getHeight(root.right);
if (Math.abs(left - right) > 1) {
return -1;
}
if (left == -1 || right == -1)
return -1;
return Math.max(left, right) + 1;
}
refer: http://www.programcreek.com/2013/02/leetcode-balanced-binary-tree-java/ and http://www.geeksforgeeks.org/how-to-determine-if-a-binary-tree-is-balanced/