Loading

Quipoin Menu

Learn • Practice • Grow

data-structure-with-java / Level Order Traversal
tutorial

Level Order Traversal

Level order traversal (breadth-first search) visits nodes level by level from top to bottom, left to right. It uses a queue to process nodes in order of their depth.

Algorithm:
1. Push root into queue.
2. While queue not empty: pop node, print it, push its left and right children.
3. Repeat until queue empty.

Java implementation:


public void levelOrder(TreeNode root) {
if (root == null) return;
Queue queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
System.out.print(node.val + " ");
if (node.left != null) queue.offer(node.left);
if (node.right != null) queue.offer(node.right);
}
}

For printing each level separately, capture the queue size before processing the level:


public void levelOrderLevels(TreeNode root) {
Queue queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
int levelSize = queue.size();
for (int i = 0; i < levelSize; i++) {
TreeNode node = queue.poll();
System.out.print(node.val + " ");
if (node.left != null) queue.offer(node.left);
if (node.right != null) queue.offer(node.right);
}
System.out.println(); // new line after each level
}
}
Two Minute Drill
  • Level order traversal uses a queue (BFS).
  • Visits nodes by depth, left to right.
  • Time O(n), space O(n) for queue.
  • Useful for finding minimum depth, checking completeness, etc.

Need more clarification?

Drop us an email at career@quipoinfotech.com