DSA Patterns (Multi-Lang)•Part 7: Binary Trees, BSTs & Traversals (53 - 64)
Binary Tree Level Order Traversal.
In Simple Words:
BFS with a Queue. For each level, record levelSize = queue.length. Pop exactly levelSize nodes, collect their values in a sub-list, and push their non-null children.
- Time: $O(N)$ | Space: $O(W) = O(N)$
Multi-Language SolutionsPython 3 • JavaScript • TypeScript • Java • C++
Switch tabs or choose Allfrom collections import deque
def levelOrder(root: TreeNode | None) -> list[list[int]]:
if not root: return []
res = []
q = deque([root])
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)
res.append(level)
return res