diff --git a/apps/docs/content/(tree)/199-binary-tree-right-side-view.mdx b/apps/docs/content/(tree)/199-binary-tree-right-side-view.mdx new file mode 100644 index 0000000..4c96113 --- /dev/null +++ b/apps/docs/content/(tree)/199-binary-tree-right-side-view.mdx @@ -0,0 +1,64 @@ +--- +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 BFS + +### 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` + +## 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 +```