[路飞]107.二叉树的层序遍历

169 阅读1分钟

题目描述

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

二叉树:[3,9,20,null,null,15,7],

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

思路分析

来,同样的递归分析法安排

1、 函数意义:将二叉树的同层数据都放在一个数组中输出

2、 边界条件: 二叉树为空

3、递归过程: 二叉树进行遍历输出,同层的放在一个数组(因此我们要先实现一个二叉树的输出)

代码实现

const __levelOrder = (root, res, index) => {
if (!root) return;
res[index] ? res[index].push(root.val) : (res[index] = [root.val]);
const newIndex = index + 1;
__levelOrder(root.left, res, newIndex);
__levelOrder(root.right, res, newIndex);
};
/**
* @param {TreeNode} root
* @return {number[][]}
*/
var levelOrder = function (root) {
const res = [];
__levelOrder(root, res, 0);
return res;
};