输入一棵二叉树,判断该二叉树是否是平衡二叉树。
条件
遍历根节点的左右子树,如果左子树或者右子树有一个不是平衡二叉树,则整棵树都不是平衡二叉树。
public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
return getDeep(root)!=-1;
}
public int getDeep(TreeNode root){
if(root==null)
return 0;
int left=getDeep(root.left);
if(left==-1)
return -1;
int right=getDeep(root.right);
if(right==-1)
return -1;
return Math.abs(left-right)>1?-1:1+Math.max(left,right);
}
}