## Challenge Statement

- Given the
`root`

of a binary tree, return*its maximum depth*. - A binary tree’s
**maximum depth**is the number of nodes along the longest path from the root node down to the farthest leaf node. - This challenge corresponds to LeetCode #104.

### Constraints

*The number of nodes in the tree is in the range*`[0, 10`

.^{4}]`-100 <= Node.val <= 100`

**Example 1:**

**Input:** `root = [3, 9, 20, null, null, 15, 7]`

**Output:** `3`

**Example 2:**

**Input:** `root = [1, null, 2]`

**Output:** `2`

## Solution

Below is my solution and some test cases. This solution has a **linear time complexity O(n) and a linear space complexity O(n)**, where n is the length of the input list*.*