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;
};