给定二叉树,确定它是否是高度平衡的。
从根结点开始递归判断左右子树是否平衡。
class Solution {
public boolean isBalanced(TreeNode root) {
if(root == null) return true;
int left = help(root.left,1);
int right = help(root.right,1);
boolean isBalanced = false;
if(Math.abs(left-right)<=1) isBalanced = true;
return isBalanced&&isBalanced(root.left)&&isBalanced(root.right);
}
public int help(TreeNode root,int depth){
if(root == null)
return depth;
depth++;
return Math.max(help(root.left,depth),help(root.right,depth));
}
}