package top100liked // https://leetcode.cn/problems/binary-tree-right-side-view/description/?envType=study-plan-v2&envId=top-100-liked type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func rightSideView(root *TreeNode) []int { if root == nil { return []int{} } queue := []*TreeNode{root} res := []int{} for len(queue) > 0 { tmpQueue := []*TreeNode{} for i := range queue { if i == len(queue)-1 { res = append(res, queue[i].Val) } if queue[i].Left != nil { tmpQueue = append(tmpQueue, queue[i].Left) } if queue[i].Right != nil { tmpQueue = append(tmpQueue, queue[i].Right) } } queue = tmpQueue } return res }