题目
给定一个二叉树的 根节点
root
,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例
输入: [1,2,3,4,5,6,7] 输出: [1,3,7]
思路
就是输出每一层的最右边的,可以按照层序输出,只输出每一层的最后一个元素
答案
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {number[]}
*/
var rightSideView = function(root) {
if(root===null){
return [];
}
let ans=[];
let level=[root];
while(level.length!=0){
let temp=[];
ans.push(level[level.length-1].val);
while(level.length!=0){
let node=level.shift();
if(node.left) temp.push(node.left);
if(node.right) temp.push(node.right);
}
level=[...temp];
}
return ans;
};