Given the root of a binary tree, return the level order traversal of its nodes' values. (i.e., from left to right, level by level).
Example 1
Input: root = [3,9,20,null,null,15,7]
Output: [[3],[9,20],[15,7]]
Explanation: Reading the tree one level at a time from left to right: level 0 is [3], level 1 is [9,20] and level 2 is [15,7].
Example 2
Input: root = [1]
Output: [[1]]
Explanation: The tree has a single node, so there is one level: [[1]].
Example 3
Input: root = []
Output: []
Explanation: The tree is empty, so there are no levels to return.
BFS naturally visits nodes one level at a time. The trick to grouping the output by level is to snapshot the *queue's size* at the start of each iteration — at that moment the queue contains exactly the nodes of one level. Drain that many, enqueue their children, and you've completed one level cleanly.
Run checks all cases above. Submit evaluates all test cases.