题目

输入一棵二叉树,判断该二叉树是否是平衡二叉树。

思路 + 代码

平衡二叉树的左右子树的高度差不大于 1。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Solution {
private boolean isBalanced = true;
public boolean IsBalanced_Solution(TreeNode root) {
height(root);
return isBalanced;
}
private int height(TreeNode root){
if(root==null || !isBalanced)
return 0;
int left = height(root.left);
int right = height(root.right);
if(1<Math.abs(left-right))
isBalanced = false;
return Math.max(left, right) + 1;
}
}