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

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

    示例 1:
    image.png
    输入: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]]

    1. /**
    2. * // Definition for a Node.
    3. * function Node(val,children) {
    4. * this.val = val;
    5. * this.children = children;
    6. * };
    7. */
    8. /**
    9. * @param {Node|null} root
    10. * @return {number[][]}
    11. */
    12. var levelOrder = function (root) {
    13. let res = [];
    14. const traverse = (node, depth) => {
    15. if (!node) return
    16. if (res[depth]) {
    17. res[depth].push(node.val);
    18. } else {
    19. res[depth] = [node.val];
    20. }
    21. for (let i = 0; i < node.children.length; i += 1) {
    22. traverse(node.children[i], depth + 1);
    23. }
    24. }
    25. traverse(root, 0);
    26. return res;
    27. };

    image.png