package main type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func main() { } func rightSideView(root *TreeNode) []int { if root == nil { return []int{} } queue := []*TreeNode{root} var res []int for len(queue) > 0 { length := len(queue) var thelo int for i := 0; i < length; i++ { node := queue[0] thelo = node.Val queue = queue[1:] if node.Left != nil { queue = append(queue, node.Left) } if node.Right != nil { queue = append(queue, node.Right) } } res = append(res, thelo) } return res }