NOTE
二叉树的右视图
二叉树的右视图的 LeetCode 解题笔记。
这是历史学习笔记,可能存在过时或不完整的理解。
1. 题目描述
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
2. 思路
- 层序遍历,取出最后一个元素即可
3. 实现
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func rightSideView(root *TreeNode) []int {
if root == nil {
return nil
}
var res []int
currentLineLast := root
var nextLineLast *TreeNode
queue := []*TreeNode{root}
for len(queue) > 0 {
node := queue[0]
queue = queue[1:]
if node.Left != nil {
queue = append(queue, node.Left)
nextLineLast = node.Left
}
if node.Right != nil {
queue = append(queue, node.Right)
nextLineLast = node.Right
}
if node == currentLineLast {
res = append(res, node.Val)
currentLineLast = nextLineLast
}
}
return res
}
讨论
使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看