leetcode

Leetcode submissions
git clone git://git.laack.co/leetcode.git
Log | Files | Refs | README

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]