给定一个二叉树的 根节点 root
,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
func rightSideView(root *TreeNode) []int {
st := make([]bool, 100)
ans := make([]int, 0)
dfs(root, &st, &ans, 0)
return ans
}
func dfs(Node *TreeNode, st *[]bool, ans *[]int, depth int) {
if Node == nil {
return
}
if !(*st)[depth] {
*ans = append(*ans, Node.Val)
(*st)[depth] = true
}
dfs(Node.Right, st, ans, depth + 1)
dfs(Node.Left, st, ans, depth + 1)
}