English
110. Balanced Binary Tree
Problem Statement:
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 left and right subtrees of every node differ in height by no more than 1.
Example 1:
Input: root = [3,9,20,null,null,15,7]
Output: true
Example 2:
Input: root = [1,2,2,3,3,null,null,4,4]
Output: false
Example 3:
Input: root = []
Output: true
Constraints:
- The number of nodes in the tree is in the range [0, 5000].
- -104 <= Node.val <= 104
Solution:
java
public class BalancedBinaryTree {
public boolean isBalancedTree(TreeNode root) {
return !(isBalTree(root) == -1);
}
private int isBalTree(TreeNode root) {
if (root == null)
return 0;
int leftHeight = isBalTree(root.left);
if (leftHeight == -1)
return -1;
int rightHeight = isBalTree(root.right);
if (rightHeight == -1)
return -1;
if (Math.abs(leftHeight - rightHeight) > 1)
return -1;
else
return Math.max(leftHeight, rightHeight) + 1;
}
}
...