Golang:
思路:这题不是要求输出最右边的路径,而是你从最右侧看去,每一层的最右端的点。方法就是BFS进行层序遍历,每次将最右边的那个放进结果里了。
代码如下:
func rightSideView(root *TreeNode) []int {
var res []int
var nodes []*TreeNode
if root!=nil {
nodes=append(nodes, root)
for len(nodes)!=0{
length:=len(nodes)
res=append(res, nodes[length-1].Val)
i:=0
for ;i<length;i++{
node:=nodes[i]
if node.Left!=nil {
nodes=append(nodes, node.Left)
}
if node.Right!=nil {
nodes=append(nodes,node.Right)
}
}
nodes=nodes[i:]
}
}
return res
}
有疑问加站长微信联系(非本文作者)