func rightSideView(root *TreeNode) []int {
res := make([]int, 0)
q := []*TreeNode{root}
for len(q) != 0 {
var rightSide *TreeNode
qLen := len(q)
for i := 0; i < qLen; i++ {
node := q[0]
q = q[1:]
if node != nil {
rightSide = node
q = append(q, node.Left)
q = append(q, node.Right)
}
}
if rightSide != nil {
res = append(res, rightSide.Val)
}
}
return res
}