Binary Tree Zigzag Level Order Traversal Visualizer & Step-by-Step Algorithm Solution

Traverse binary tree levels alternating directions (left-to-right on even levels, right-to-left on odd levels).

Category: trees | Difficulty: Medium

Tags: BFS, Binary Tree, Queue, Zigzag, Level Order

Binary Tree Zigzag Level Order Traversal

3
9
20
15
7
BFS QUEUE
FRONT
Node(3)
100%
state
directionLeft -> Right
result[]
Initialization
1/17
Explanation

Initialize Zigzag BFS Queue with root Node(3). Initial direction: Left -> Right.

Source Code
1function zigzagLevelOrder(root) {
2 if (!root) return [];
3 const queue = [root];
4 const result = [];
5 let leftToRight = true;
6 while (queue.length > 0) {
7 const levelSize = queue.length;
8 const currentLevel = [];
9 for (let i = 0; i < levelSize; i++) {
10 const node = queue.shift();
11 if (leftToRight) currentLevel.push(node.val);
12 else currentLevel.unshift(node.val);
13 if (node.left) queue.push(node.left);
14 if (node.right) queue.push(node.right);
15 }
16 result.push(currentLevel);
17 leftToRight = !leftToRight;
18 }
19 return result;
20}