Binary Tree Level Order Traversal

Medium Subject: Trees
Time Complexity
O(N)
Space Complexity
O(N)

Problem Description

Given the root of a binary tree, return the level order traversal of its nodes' values (i.e., from left to right, level by level).

Optimal Solution

Python
from collections import deque

def levelOrder(root):
    if not root:
        return []
    result = []
    queue = deque([root])
    while queue:
        level_size = len(queue)
        level = []
        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