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.
Example 1:
Input:root = [1,2,3,null,5,null,4]
Output:[1,3,4]
Explanation:
Example 2:
Input:root = [1,2,3,4,null,null,null,5]
Output:[1,3,4,5]
Explanation:
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
Solutions
Solution 1
1 2 3 4 5 6 7 8 9101112131415161718192021
# 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 = rightclassSolution:defrightSideView(self,root:Optional[TreeNode])->List[int]:ans=[]ifrootisNone:returnansq=deque([root])whileq:ans.append(q[-1].val)for_inrange(len(q)):node=q.popleft()ifnode.left:q.append(node.left)ifnode.right:q.append(node.right)returnans
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */funcrightSideView(root*TreeNode)(ans[]int)