我们都知道如何判断一棵二叉树是不是平衡二叉树,就是它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
- 左深度-右深度>1 不是平衡二叉树
- 求二叉树最大深度的变种
import java.util.*;
public class Solution {
boolean isBalanced = true;
public boolean IsBalanced_Solution(TreeNode root) {
if(root==null){
return true;
}
dfs(root);
return isBalanced;
}
public int dfs(TreeNode node){
if(node==null){
return 0;
}
int l=dfs(node.left);
int r=dfs(node.right);
//左-有<=1 为平衡
if(Math.abs(l-r)>1){
isBalanced = false;
}
return Math.max(l,r)+1;//求深度
}
}