Search⌘ K

Binary Tree Zigzag Level Order Traversal

Explore how to implement zigzag level order traversal of a binary tree by alternating left-to-right and right-to-left node visits. Understand using BFS and a deque to solve this common coding interview challenge efficiently in both time and space.

Description

Given a binary tree T, you have to find its nodes’ zigzag level order traversal. The zigzag level order traversal corresponds to traversing nodes from left to right and then right to left for the next level, alternating between.

You have to return the elements in each level in a two-dimensional array.

Let’s look at an example:

Coding exercise

Java
class Solution {
public static List<List<Integer>> zigzagLevelOrder(TreeNode root) {
// write your code here
return new ArrayList<List<Integer>>();
}
}
Binary Tree Zigzag Level Order Traversal

Solution

As per the problem statement, we need to traverse the tree in a level-by-level zigzag order. An intuitive approach for this problem would be to use Breadth-First Search (BFS). By default, BFS provides ordering from left to right within a single level.

We will need to modify BFS a little to get our desired output, a zigzagzigzag ...