199. 二叉树的右视图
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入: [1,2,3,null,5,null,4]
输出: [1, 3, 4]
解释:
1 <---
/ \
2 3 <---
\ \
5 4 <---
Code
层序遍历后取最后一个元素返回
var res [][]int
func rightSideView(root *TreeNode) []int {
res = [][]int{}
temp := []int{}
if root == nil {
return temp
}
dfs(root, 0)
for i:=0; i<len(res); i++ {
temp = append(temp, res[i][len(res[i])-1])
}
return temp
}
func dfs(root *TreeNode, level int) {
if root != nil {
if len(res) == level {
res = append(res, []int{})
}
res[level] = append(res[level], root.Val)
dfs(root.Left, level+1)
dfs(root.Right, level+1)
}
}
本文详细解析了二叉树的右视图算法,通过层序遍历的方法,实现了从顶部到底部返回二叉树右侧可见节点值的功能。以示例[1,2,3,null,5,null,4]为例,展示了算法的具体实现过程,最终输出结果为[1,3,4]。
441

被折叠的 条评论
为什么被折叠?



