输入一棵二叉树,判断该二叉树是否是平衡二叉树。
平衡二叉树的左右子树也是平衡二叉树,那么所谓平衡就是左右子树的高度差不超过1.
public class Solution {
public int depth(TreeNode root){
if(root == null)return 0;
int left = depth(root.left);
if(left == -1)return -1;
int right = depth(root.right);
if(right == -1)return -1;
if(left - right <(-1) || left - right > 1)
return -1;
else
return 1+(left > right?left:right);
}
public boolean IsBalanced_Solution(TreeNode root) {
return depth(root) != -1;
}
}