题目来源
二叉树平衡检查
题目描述
实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。 给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。
题目解答
import java
.util
.*
;
public class Balance {
public boolean isBalance(TreeNode root
) {
if(root
==null
){
return true;
}
int leftHeight
=getTreeHeight(root
.left
);
int rightHeight
=getTreeHeight(root
.right
);
if(Math
.abs(leftHeight
-rightHeight
)>1){
return false;
}
return isBalance(root
.left
)&&isBalance(root
.right
);
}
public int getTreeHeight(TreeNode root
){
if(root
==null
){
return 0;
}
return Math
.max(getTreeHeight(root
.left
),getTreeHeight(root
.right
))+1;
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-18645.html