Given a binary tree, determine if it is A height-balanced binary tree is a binary tree in which the depth of the two subtrees of every node never differs by more than one..
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
Approach
- We will return -1 if it is not balanced and rest is simple dfs recursion
class Solution {
public boolean isBalanced(TreeNode root) {
return check(root) != -1;
}
public int check(TreeNode root) {
if (root == null)
return 0;
int left = check(root.left);
int right = check(root.right);
if (left == -1 || right == -1 || Math.abs(left - right) > 1)
return -1;
return 1 + Math.max(left,right);
}
}