110.Balanced Binary Tree
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
高度平衡的二叉树定义:二叉树的每个节点的左右子树的高度相差不大于1.
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
利用递归的思想,先计算树的高度,然后计算每个节点的左右子树的高度差是否大于1.
public boolean isBalanced(TreeNode root) {
if(root == null) return true;
if((Math.abs(hightOfTree(root.left) - hightOfTree(root.right))) > 1){
return false;
}
return isBalanced(root.left) && isBalanced(root.right);
}
public int hightOfTree(TreeNode root){
if(root == null) return 0;
return Math.max(hightOfTree(root.left), hightOfTree(root.right)) + 1;
}