Back to all solutions

#429 - N-ary Tree Level Order Traversal

Problem Description

Given an n-ary tree, return the level order traversal of its nodes' values.

Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value.

Solution

/**
 * // 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) return [];

  const result = [];
  const queue = [root];

  while (queue.length) {
    const [level, current] = [queue.length, []];
    for (let i = 0; i < level; i++) {
      const node = queue.shift();
      current.push(node.val);
      queue.push(...node.children);
    }
    result.push(current);
  }

  return result;
};