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)
}

Last updated