Neural Mastery
← Practice
Binary Tree Zigzag Level Order Traversalmedium

Binary Tree Zigzag Level Order Traversal

medium Coding Interview Patterns 15–20 min

NumPy allowed · plain Python earns 10 bonus points

Interactive
Graph & Tree Traversal, Step by Step
Structure
Algorithm
ABCDE
visiting A -> visited order so far: [A]
queue now: [B, C]
Step 1 / 5
Both modes run the real algorithm from the linked practice problem, one step at a time -- edit the graph or pick different tree nodes and every step recomputes live.

Traverse a binary tree level by level, alternating horizontal scan direction between left-to-right and right-to-left.

Related Skills

Task

Implement zigzag_level_order(root): perform BFS level-order traversal, alternating the order of elements appended to each level list depending on whether the level index is even or odd.

Function Signature

zigzag_level_order(root: dict | None) -> list[list[int]]

Examples

Example 1: 3-Level Binary Tree Zigzag
Input: root = {'val': 3, 'left': {'val': 9, 'left': None, 'right': None}, 'right': {'val': 20, 'left': {'val': 15, 'left': None, 'right': None}, 'right': {'val': 7, 'left': None, 'right': None}}}
Output: [[3], [20, 9], [15, 7]]
Example 2: Single Node
Input: root = {'val': 1, 'left': None, 'right': None}
Output: [[1]]

Constraints

  • Number of nodes in the tree is in range [0, 2000].
  • -1000 <= Node.val <= 1000
Python3Saved ✓
def zigzag_level_order(root: dict | None) -> list[list[int]]:
"""root: binary tree root node as {'val', 'left', 'right'} or None.
Return zigzag level order traversal (alternating left-to-right and right-to-left
at each level)."""
# Your implementation here
pass

Case 1: 3-Level Binary Tree Zigzag
Input: root = {'val': 3, 'left': {'val': 9, 'left': None, 'right': None}, 'right': {'val': 20, 'left': {'val': 15, 'left': None, 'right': None}, 'right': {'val': 7, 'left': None, 'right': None}}}
Expected: [[3], [20, 9], [15, 7]]
Case 2: Single Node
Input: root = {'val': 1, 'left': None, 'right': None}
Expected: [[1]]