199. Binary Tree Right Side View
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
TreeExample 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
Solution
# 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