Problem
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.
Example 1:
Given the following tree [3,9,20,null,null,15,7]
:
1 |
|
Return true.
Example 2:
Given the following tree [1,2,2,3,3,null,null,4,4]
:
1 |
|
Return false.
Explanation
-
We use recursion method to solve most of the tree problem. There are 3 conditon to check if the root is a balanced binary tree.
- The difference between left subtree’s height and right subtree’s height is no more than 1.
- Left subtree is already a balanced binary tree.
- Right subtree is already a balanced binary tree.
-
The base case of the getHeight helper funtion is if the root is NULL, we can return its height to be zero.
Solution
1 |
|