← Tree Traversal

Micro-Drill #262 — BFS level-order traversal

Tree Traversal Target: 15s

The for-range-len(q) trick processes one level at a time. Without it you get plain BFS without level grouping.

from collections import deque
q = deque([root])
result = []
while q:
    level = []
    for _ in range(len(q)):
        node = q.popleft()
        level.append(node.val)
        if node.left: q.append(node.left)
        if node.right: q.append(node.right)
    result.append(level)

Type it from memory. Go.

Practice Problems

Related Coding Drills

← Micro #261 Micro #263 →