public static boolean isBanlance(TreeNode root){
if(root==null) return true;
int diff=getHeight(root.left)-getHeight(root.right);
if(Math.abs(diff)>1) return false;
else{
return isBanlance(root.left) && isBanlance(root.right);
}
}//递归实现检查二叉树是否平衡
public int checkHeight(TreeNode root){
if(root==null) return 0;
int leftHeight=checkHeight(root.left);
if(leftHeight=-1){
return -1;
}
int rightHeight=checkHeight(root.right);
if(rightHeight==-1){
return -1;
}
int diff=leftHeight-rightHeight;
if(Math.abs(diff)>1){
return -1;
}else{
return Math.max(leftHeight, rightHeight)+1;
}
}
public static boolean banlance(TreeNode root){
if(checkHeight(root)==-1){
return false;
}
return true;
}//非递归实现
if(root==null) return true;
int diff=getHeight(root.left)-getHeight(root.right);
if(Math.abs(diff)>1) return false;
else{
return isBanlance(root.left) && isBanlance(root.right);
}
}//递归实现检查二叉树是否平衡
public int checkHeight(TreeNode root){
if(root==null) return 0;
int leftHeight=checkHeight(root.left);
if(leftHeight=-1){
return -1;
}
int rightHeight=checkHeight(root.right);
if(rightHeight==-1){
return -1;
}
int diff=leftHeight-rightHeight;
if(Math.abs(diff)>1){
return -1;
}else{
return Math.max(leftHeight, rightHeight)+1;
}
}
public static boolean banlance(TreeNode root){
if(checkHeight(root)==-1){
return false;
}
return true;
}//非递归实现