给你一个树让你判断是否是平衡二叉树(左右子树高度差不大于1)
递归回溯 判断高度差
class Solution {
public boolean isBalanced(TreeNode node )
{
return !(getH(node) == -1);
}
public int getH(TreeNode node)
{
if(node == null) {
return 0;
}else
{
int leftH = getH(node.left);
int rightH = getH(node.right);
if(leftH == -1 || rightH == -1 || Math.abs(rightH-leftH)>1)
{
return -1;
}else
{
return Math.max(leftH, rightH)+1;
}
}
}
}