Skip to content
On this page

429. N 叉树的层序遍历

原题链接:LeetCode 429. N 叉树的层序遍历

题目描述

给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。

树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。

示例 1:

**输入:**root = [1,null,3,2,4,null,5,6] 输出:[[1],[3,2,4],[5,6]]

示例 2:

**输入:**root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14] 输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]

提示:

- 树的高度不会超过 `1000`

树的节点总数在 [0, 104] 之间

难度: Medium


题解代码

javascript
/**
 * // Definition for a Node.
 * function Node(val,children) {
 *    this.val = val;
 *    this.children = children;
 * };
 */

/**
 * @param {Node|null} root
 * @return {number[][]}
 */
var levelOrder = function(root) {
  if (root === null) return []
  const ret = []
  const queue = []
  let levelRet = []
  queue.push(root)
  while(queue.length) {
    levelRet = []
    const l = queue.length
    // 一次处理当前层的所有元素
    for (let i = 0; i < l; i++) {
      const cur = queue.shift()
      levelRet.push(cur.val)
      for (let child of cur.children) {
        queue.push(child)
      }
    }
    ret.push(levelRet)
  }
  return ret
};

技术文档集合