二叉树的右视图-199
sl1673495 opened this issue · 0 comments
sl1673495 commented
199.二叉树的右视图
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入: [1,2,3,null,5,null,4]
输出: [1, 3, 4]
解释:
1 <---
/ \
2 3 <---
\ \
5 4 <---
https://leetcode-cn.com/problems/binary-tree-right-side-view
思路
基本上还是二叉树 BFS 的标准模板套上去就好了,只是取值的时候每一层取最右边的值,也就是从左到右遍历的时候记录到的最后一个值即可。
let rightSideView = function (root) {
if (!root) return []
let queue = [root]
let res = []
while (queue.length) {
let len = queue.length
let last
for (let i = 0; i < len; i++) {
let node = queue.shift()
if (node.left) {
queue.push(node.left)
}
if (node.right) {
queue.push(node.right)
}
if (node.val !== undefined) {
last = node.val
}
}
res.push(last)
}
return res
}