Binary Tree Level Order Traversal

Problem Summary

Main Concepts Used

Time & Space Complexity

Code

class Solution:
    def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
        if not root:
            return []
        result = []
        q = deque([root])

        while q:
            current_level = []
            for _ in range(len(q)):
                head = q.popleft()
                current_level.append(head.val)
                if head.left:
                    q.append(head.left)
                if head.right:
                    q.append(head.right)
            result.append(current_level)
        return result