public class Solution {
public boolean isBalanced(TreeNode root)
{
if(root == null) return true;
if(isbalanced(root)==-1) return false;
return true;
}
public int isbalanced(TreeNode a)//应该带回值是高度值,不然如果递归带回对错值,就没法计算总的高度
{
if(a==null)return 0;
int left=isbalanced(a.left),//a点不为空的情况下,这边定义变量递归的时候会不会互相影响值呢?应该不影响,都是重新定义的。
right=isbalanced(a.right);
if(Math.abs(left-right)>1 || (left==-1||right==-1)) return -1;//在错误的情况下返回-1
return Math.max(left, right)+1;//在正常情况下返回两个值中最大的
}
}
public boolean isBalanced(TreeNode root)
{
if(root == null) return true;
if(isbalanced(root)==-1) return false;
return true;
}
public int isbalanced(TreeNode a)//应该带回值是高度值,不然如果递归带回对错值,就没法计算总的高度
{
if(a==null)return 0;
int left=isbalanced(a.left),//a点不为空的情况下,这边定义变量递归的时候会不会互相影响值呢?应该不影响,都是重新定义的。
right=isbalanced(a.right);
if(Math.abs(left-right)>1 || (left==-1||right==-1)) return -1;//在错误的情况下返回-1
return Math.max(left, right)+1;//在正常情况下返回两个值中最大的
}
}