给出一颗二叉树,判断是否为平衡二叉树
平衡二叉树的定义是对于每一个节点,左子树的高度和右子树的高度差不大于1
<span style="font-size:18px;">/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
static boolean flag = true;
public boolean isBalanced(TreeNode root) {
flag = true;
if(root == null){
return true;
}
int left = getDept(root.left);
int right = getDept(root.right);
return flag && Math.abs(left - right) <= 1;
}
public static int getDept(TreeNode root){
if(flag){
if(root == null){
return 0;
}
else {
int left = getDept(root.left);
int right = getDept(root.right);
if(Math.abs(left - right) > 1){
flag = false;
}
return 1 + Math.max(left, right);
}
}
return 0;
}
}</span>