34 lines
679 B
Go
34 lines
679 B
Go
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
|
|
}
|