---
title: '199. Binary Tree Right Side View'
description: Given the root of a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom
sidebar:
  label: 'Binary Tree Right Side View'
  badge: 'Medium'
---

Tree

### Example 1:
- Input: `root = [1,2,3,null,5,null,4]`
- Output: `[1,3,4]`

### Example 2:
- Input: `root = [1,2,3,4,null,null,null,5]`
- Output: `[1,3,4,5]`

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

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

### Constraints:

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

## Approach

```mermaid
flowchart TD
  S(["rightSideView(root)"]) --> I["res = [], q = deque([root])"]
  I --> W{"q non-empty?"}
  W -- no --> E(["return res"])
  W -- yes --> L["rightSide = None, qLen = len(q) — qLen freezes the current level's size"]
  L --> F{"more i in range(qLen)?"}
  F -- no --> V{"rightSide is not None?"}
  V -- yes --> A["res.append(rightSide.val) — the last real node popped on this level is the rightmost"]
  A --> W
  V -- no --> W
  F -- yes --> P["node = q.popleft()"]
  P --> N{"node is not None?"}
  N -- no --> F
  N -- yes --> C["rightSide = node, q.append(node.left), q.append(node.right)"]
  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:
    def rightSideView(self, root: Optional[TreeNode]) -> List[int]:
        res = []
        q = deque([root])

        while q:
            rightSide = None
            qLen = len(q)

            for i in range(qLen):
                node = q.popleft()
                if node:
                    rightSide = node
                    q.append(node.left)
                    q.append(node.right)

            if rightSide:
                res.append(rightSide.val)

        return res
```

## Explanation

[Binary Tree Right Side View - Breadth First Search - Leetcode 199](https://www.youtube.com/watch?v=d4zLyf32e3I)
