Optimal Python Solution for Binary Tree Level Order Traversal (Interview Script)
2025-10-04
The Logic
- Nodes must be processed level by level from top to bottom.
- Breadth-first search naturally processes nodes in this order.
- A queue tracks the current level while preserving traversal order.
Implementation / Diagram
Key Invariant
At each iteration, the queue contains exactly the nodes of the current level.
from collections import deque
def levelOrder(root):
if not root:
return []
result = []
queue = deque([root])
while queue:
level = []
level_size = len(queue)
for _ in range(level_size):
node = queue.popleft()
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result.append(level)
return result