题目描述
给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例 1:
输入: [1,2,3,null,5,null,4]
输出: [1,3,4]
示例 2:
输入: [1,null,3]
输出: [1,3]
示例 3:
输入: []
输出: []
解题思路
- 获得一个二叉树的每层的最右侧的节点的值,可以层序遍历,然后取每层最后的一个值
代码
var rightSideView = function(root){
if(!root) return [];
let queue = [root];
let ans = [];
while(queue.length){
let temp = [];
for(let i = queue.length; i > 0; i--){
let n = queue.shift();
temp.push(n.val);
n.left && queue.push(n.left);
n.right && queue.push(n.right);
}
ans.push(temp.pop());
}
return ans;
}