Binary Tree Zigzag Level Order Traversal
Difficulty: Medium
Category: DSA
Topics: Tree, Breadth-First Search, Binary Tree
Asked at: Amazon, Microsoft, Bloomberg, Apple, Facebook, Qualtrics, eBay, Adobe, ByteDance, Google, Goldman Sachs, ServiceNow, Oracle
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]]
```
**Example 2:**
**Input:** root = [1]
**Output:** [[1]]
```
**Example 3:**
**Input:** root = []
**Output:** []
```
**Constraints:**
- The number of nodes in the tree is in the range `[0, 2000]`.
- `-100 <= Node.val <= 100`