实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。
给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。
import java.util.*;
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}*/
public class Balance {
boolean flag = true;
public boolean isBalance(TreeNode root) {
// write code here
getLength(root);
return flag;
}
public int getLength(TreeNode root){
if(root == null) return 0;
int left,right;
left = right = 0;
if(root.left != null) left = getLength(root.left);
if(root.right != null) right = getLength(root.right);
if(left - right > 1 || right - left > 1) flag = false;
return (left > right) ? left + 1 : right + 1;
}
}