Given the root of a binary tree, return the zigzag level order traversal of its nodes' values. (i.e., from left to right, then right to left for the next level and alternate between).
Example 1
Input: root = [3,9,20,null,null,15,7]
Output: [[3],[20,9],[15,7]]
Explanation: Level 0 is read left to right as [3], level 1 is read right to left as [20,9], and level 2 is read left to right again as [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.
Do a normal level-order (BFS) traversal, but reverse the order of values on every other level so the output snakes left-to-right, then right-to-left.
Run checks all cases above. Submit evaluates all test cases.