平衡二叉树
- 本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:true
示例 2:
输入:root = [1,2,2,3,3,null,null,4,4]
输出:false
class Solution {
public boolean isBalanced(TreeNode root) {
return judgeBlance(root);
}
public boolean judgeBlance(TreeNode t) {
if (t == null) {
return true;
}
if (Math.abs(getTreeHigh(t.left) - getTreeHigh(t.right)) <= 1) {
return judgeBlance(t.right) && judgeBlance(t.left);
} else{
return false;
}
}
public int getTreeHigh(TreeNode t) {
if (t == null) {
return 0;
}
if (t.left == null && t.right == null) {
return 1;
}
return Math.max(getTreeHigh(t.left), getTreeHigh(t.right)) + 1;
}
}