题目:
难度:Middle
相关话题:树
、深度优先搜索
、广度优先搜索
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入:[1,2,3,null,5,null,4]
输出:[1, 3, 4]
解释:
1 <---
/ \
2 3 <---
\ \
5 4 <---
/**
* @来源: Javascript中文网 - 前端进阶资源教程 https://www.javascriptc.com/
* @介绍:一个致力于帮助开发者用代码改变世界为使命的平台,每天都可以在这里找到技术世界的头条内容
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number[]}
*/
var rightSideView = function(root) {
if(!root)return []
let arr=[root]
let res=[]
while(arr.length>0){
let len=arr.length
res.push(arr[len-1].val)
for(let i=0;i<len;i++){
let node=arr.shift()
if(node.left)arr.push(node.left)
if(node.right)arr.push(node.right)
}
}
return res
};
扩展阅读: