Level Order Traversal: Definition, Example, and Use Cases
queue to keep track of nodes at each level before moving to the next level.How It Works
Imagine you are looking at a family tree and want to meet everyone generation by generation. Level order traversal works the same way by visiting all nodes at one level before moving to the next. It starts at the root (top) node, then visits all nodes directly connected to it (the next level), then the nodes connected to those, and so on.
This traversal uses a queue to keep track of nodes waiting to be visited. When a node is visited, its children are added to the queue. This ensures nodes are processed in the order they appear by level, like standing in line and taking turns.
Example
This example shows how to perform level order traversal on a binary tree using Python. It prints nodes level by level.
from collections import deque class Node: def __init__(self, value): self.value = value self.left = None self.right = None def level_order_traversal(root): if not root: return queue = deque([root]) while queue: current = queue.popleft() print(current.value, end=' ') if current.left: queue.append(current.left) if current.right: queue.append(current.right) # Example tree: # 1 # / \ # 2 3 # / \ \ # 4 5 6 root = Node(1) root.left = Node(2) root.right = Node(3) root.left.left = Node(4) root.left.right = Node(5) root.right.right = Node(6) level_order_traversal(root)
When to Use
Level order traversal is useful when you need to process nodes in a tree by their distance from the root. For example, it helps in finding the shortest path in unweighted trees or graphs, printing nodes level by level for visualization, or serializing a tree structure.
It is commonly used in scenarios like network broadcasting, where messages spread level by level, or in games and simulations where you explore areas stepwise from a starting point.
Key Points
- Visits nodes level by level from top to bottom, left to right.
- Uses a
queueto keep track of nodes to visit next. - Useful for shortest path and breadth-first search in trees and graphs.
- Different from depth-first traversals that go deep before wide.