---
title: '102. Binary Tree Level Order Traversal'
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)
sidebar:
  label: 'Binary Tree Level Order Traversal'
  badge: 'Medium'
---

Tree

### Example 1:
- Input: `root = [3,9,20,null,null,15,7]`
- Output: `[[3],[9,20],[15,7]]`

### Example 2:
- Input: `root = [1]`
- Output: `[[1]]`

### Example 3:
- Input: `root = []`
- Output: `[]`

### Constraints:

- The number of nodes in the tree is in the range [0, 2000].
- `-1000 <= Node.val <= 1000`

## Approach

```mermaid
flowchart TD
  S(["levelOrder(root)"]) --> I["res = [], q = deque(), q.append(root)"]
  I --> W{"q non-empty?"}
  W -- no --> E(["return res"])
  W -- yes --> L["qLen = len(q), level = [] — qLen freezes the current level's size"]
  L --> F{"more i in range(qLen)?"}
  F -- no --> V{"level non-empty?"}
  V -- yes --> A["res.append(level)"]
  A --> W
  V -- no --> W
  F -- yes --> P["node = q.popleft()"]
  P --> N{"node is not None?"}
  N -- no --> F
  N -- yes --> C["level.append(node.val), q.append(node.left), q.append(node.right) — None children are filtered on the next level"]
  C --> F
```

## Solution

```py
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
from collections import deque


class Solution:
    # T: O(n) S: O(n)
    def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
        res = []

        q = deque()
        q.append(root)

        while q:
            qLen = len(q)
            level = []
            for i in range(qLen):
                node = q.popleft()
                if node:
                    level.append(node.val)
                    q.append(node.left)
                    q.append(node.right)
            if level:
                res.append(level)

        return res
```

## Explanation

[Binary Tree Level Order Traversal - BFS - Leetcode 102](https://www.youtube.com/watch?v=6ZnyEApgFYg)
