binary-tree-right-side-view.py (910B)
1 from collections import deque 2 3 4 # Definition for a binary tree node. 5 # class TreeNode: 6 # def __init__(self, val=0, left=None, right=None): 7 # self.val = val 8 # self.left = left 9 # self.right = right 10 class Solution: 11 def rightSideView(self, root: Optional[TreeNode]) -> List[int]: 12 13 if root is None: 14 return [] 15 16 queue = deque() 17 queue.append(root) 18 layer = 0 19 result = [] 20 21 while queue: 22 length = len(queue) 23 result.append([]) 24 for i in range(0, length): 25 current = queue.popleft() 26 result[layer].append(current.val) 27 if current.left is not None: 28 queue.append(current.left) 29 if current.right is not None: 30 queue.append(current.right) 31 layer += 1 32 33 return [x[-1] for x in result]