Given the root of a binary tree, return its maximum depth — the number of nodes along the longest path from the root down to the farthest leaf.
A BFS approach counts completed levels as the queue drains. The recursive shape is equally valid and shorter: 1 + max(depth(left), depth(right)), with a null root returning 0.
Example: root = [3,9,20,null,null,15,7] → 3. root = [1,null,2] → 2.
3