跳到主要内容

199.二叉树的右视图

链接:199.二叉树的右视图
难度:Medium
标签:树、深度优先搜索、广度优先搜索、二叉树
简介:给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

题解 1 - javascript

  • 编辑时间:2020-04-22
  • 执行用时:112ms
  • 内存消耗:34.3MB
  • 编程语言:javascript
  • 解法介绍:层序遍历当前层遍历完后压栈最后一个元素。
/**
* 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 === null) return [];
const res = [root.val];
const queue = [root];
let levelSize = 1;
while (queue.length !== 0) {
const node = queue.shift();
// console.log("===================");
// console.log(node);
if (node.left !== null) queue.push(node.left);
if (node.right !== null) queue.push(node.right);
if (--levelSize === 0 && queue.length !== 0) {
// console.log("in");
levelSize = queue.length;
res.push(queue[levelSize - 1].val);
}
}
return res;
};