199. Binary Tree Right Side View Solution 1 (time O(n), space O(n)) # BFS # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution(object): def rightSideView(self, root): """ :type root: TreeNode :rtype: List[int] """ if not root: return [] ans = [] cur_level = [root] while cur_level: ans.append(cur_level[-1].val) new_level = [] for p in cur_level: if p.left: new_level.append(p.left) if p.right: new_level.append(p.right) cur_level = new_level return ans