class Solution {
public boolean isBalanced(TreeNode root) {
if(root==null) return true;
boolean leftbalanced = isBalanced(root.left);// 左右子树是否是平衡二叉树
boolean rightbalanced = isBalanced(root.right);
if(leftbalanced && rightbalanced){//是的话,判断高度,判断整个树是否是平衡二叉树
int left = treeHeight(root.left);
int right = treeHeight(root.right);
boolean isbalanced = isBalanced(left,right);
return isbalanced;
}
else
return false;
}
public int treeHeight(TreeNode node){
if(node == null) return 0;
int left = treeHeight(node.left);
int right = treeHeight(node.right);
return max(left, right) + 1;
}
public int max(int a, int b){
return a >= b ? a:b;
}
public boolean isBalanced(int left, int right){
int diff = 0;
if(left >= right) diff = left - right;
else diff = right - left;
if(diff <= 1) return true;
else return false;
}
}
110. 平衡二叉树
最新推荐文章于 2022-03-24 00:00:00 发布