199. Binary Tree Right Side View

Medium
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]
Example 2:
Input: root = [1,null,3]
Output:
[1,3]
Example 3:
Input: root = []
Output:
[]
Constraints:
  • The number of nodes in the tree is in the range [0, 100].
  • -100 <= Node.val <= 100

解法

type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
​
func rightSideView(root *TreeNode) []int {
res := []int{}
helper(&res, root, 1)
return res
}
​
func helper(res *[]int, root *TreeNode, level int) {
if root == nil {
return
}
if len(*res) < level {
*res = append(*res, root.Val)
}
helper(res, root.Right, level+1)
helper(res, root.Left, level+1)
}