N 叉树的层序遍历

解题思路:同 199 等层序遍历的题型;

复杂度:

  1. 时间复杂度:O(n),其中 n 是树中包含的节点个数,在广度优先搜索的过程中,需要遍历每一个节点恰好一次;

  2. 空间复杂度:O(n),即为队列需要使用的空间,在最坏的情况下,树只有两层,且最后一层有 n-1 个节点,此时就需要 O(n) 的空间;

代码实现:

var levelOrder = function (root) {
  let res = [];
  if (root === null) {
    return res
  }
  let queue = [root];

  while (queue.length) {
    let len = queue.length;
    let stackLevel = [];
    while (len--) {
      let node = queue.shift();
      stackLevel.push(node.val);

      node.children && node.children.forEach(it => {
        it && queue.push(it)
      })
    }
    res.push(stackLevel);
  }

  return res;
};

打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于产品、设计、开发的问题和看法,还有技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程

了解更多

目录

  1. 1. N 叉树的层序遍历
  2. 2. 解题思路:同 199 等层序遍历的题型;
  3. 3. 复杂度:
  4. 4. 代码实现: