0
点赞
收藏
分享

微信扫一扫

LeetCode 107. 二叉树的层次遍历 II

问题描述

给定一个二叉树,返回其节点值自底向上的层次遍历。(即从左到右,逐层从左向右遍历)。

例如: 给定二叉树 [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回其自底向上的遍历为:

[
  [15,7],
  [9,20],
  [3]
]

解法一

解题思路:

使用队列来实现层次遍历,从底部开始逐层向上遍历。

/*
 * @lc app=leetcode.cn id=107 lang=javascript
 *
 * [107] 二叉树的层次遍历 II
 */

// @lc code=start
function levelOrderBottom(root) {
  if (!root) return [];
  const result = [];
  const queue = [root];
  while (queue.length) {
    const levelSize = queue.length;
    const level = [];
    for (let i = 0; i < levelSize; i++) {
      const node = queue.shift();
      level.push(node.val);
      if (node.left) queue.push(node.left);
      if (node.right) queue.push(node.right);
    }
    result.unshift(level);
  }
  return result;
}
// @lc code=end
举报

相关推荐

0 条评论