8000 二叉树的右视图 · Issue #139 · louzhedong/blog · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
二叉树的右视图 #139
Open
Open
@louzhedong

Description

@louzhedong

习题

出处 LeetCode 算法第199题

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

示例:

输入: [1,2,3,null,5,null,4]
输出: [1, 3, 4]
解释:

   1            <---
 /   \
2     3         <---
 \     \
  5     4       <---

思路

将每一层的元素放入一个数组中,取最后一个值放入结果数组。然后再处理下一层的元素。

解答

var rightSideView = function (root) {
  if (!root) {
    return [];
  }
  var res = [];
  var stack = [];
  stack.push(root);
  while (stack.length > 0) {
    res.push(stack[stack.length - 1].val);
    var temp = [];
    for (var i = 0; i < stack.length; i++) {
      if (stack[i].left) {
        temp.push(stack[i].left);
      }
      if (stack[i].right) {
        temp.push(stack[i].right);
      }
    }
    stack = temp;
  }
  return res;
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0