[Leetcode]32.二叉树的右视图

题目:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

 

示例 1:

 

 


输入: [1,2,3,null,5,null,4]
输出: [1,3,4]

示例 2:

输入: [1,null,3]
输出: [1,3]

示例 3:

输入: []
输出: []

 

提示:

    二叉树的节点个数的范围是 [0,100]
    -100 <= Node.val <= 100

 

思想:BFS层序遍历,每层将最后一个元素放到结果数组中。

func rightSideView(root *TreeNode) []int {
var res []int
if root == nil{
return res
}
var s []*TreeNode
s = append(s,root)
for len(s)!=0{
res = append(res,s[len(s)-1].Val)
temp := []*TreeNode{}
for _,n:=range s{
if n.Left!=nil{
temp = append(temp,n.Left)
}
if n.Right!=nil{
temp = append(temp,n.Right)
}
}
s = temp
}
return res
}

题目来源:https://leetcode-cn.com/problems/binary-tree-right-side-view

posted @ 2021-11-19 09:16  梦想是能睡八小时的猪  阅读(55)  评论(0)    收藏  举报