平衡二叉树 :
什么是平衡二叉树: 同一个水平的左右子树的高度差不大于1,用递归的方式先判断左树是不是平衡的->右树是不是平衡,再拿到左右的高度,总体去比较····‘’
public static boolean isBalance(Node head) {
boolean[] res = new boolean[1];
res[0] = true;
getHeight(head, 1, res);
return res[0];
}
public static int getHeight(Node head, int level, boolean[] res) {
if (head == null) {
return level;
}
int lH = getHeight(head.left, level + 1, res);
if (!res[0]) {
return level;
}
int rH = getHeight(head.right, level + 1, res);
if (!res[0]) {
return level;
}
if (Math.abs(lH - rH) > 1) {
res[0] = false;
}
return Math.max(lH, rH);
}
完整二叉树