**Problem Statement:**
Given the required input arguments, write an efficient algorithm to solve the **Balanced Binary Tree** problem. Implement the required logic as specified by standard definitions for this classic algorithmic challenge.
**Hint / Expected Approach:**
DFS returns height or −1 if unbalanced
**Edge Cases to Consider:**
- (1) Empty tree (balanced)
- (2) Skewed tree
- (3) One subtree is balanced, other is not
Examples
Example 1
Input:[3,9,20,null,null,15,7]
Output:true
Explanation: Classic balanced
Example 2
Input:[1,2,2,3,3,null,null,4,4]
Output:false
Explanation: Left too deep
Example 3
Input:[]
Output:true
Explanation: Empty tree is balanced
Constraints
▪The number of nodes in the tree is in the range [0, 2000]
▪-1000 <= Node.val <= 1000
▪Ensure depth-first or breadth-first traversals are memory-efficient