给定一个 N 叉树,找到其最大深度。

    最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。

    N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。

    示例 1:
    image.png
    输入:root = [1,null,3,2,4,null,5,6]
    输出:3
    示例 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]
    输出:5

    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 maxDepth = function (root) {
    13. // 先按照遍历思路
    14. // let depth = 0, res = 0;
    15. // const traverse = (root) => {
    16. // if (!root) return;
    17. // depth++
    18. // res = Math.max(res, depth);
    19. // for (let i = 0; i < root.children.length; i += 1) {
    20. // traverse(root.children[i])
    21. // }
    22. // depth--
    23. // }
    24. // traverse(root);
    25. // return res
    26. // 再来分解问题思路
    27. if (!root) return 0;
    28. let depth = 0;
    29. for (let child of root.children) {
    30. depth = Math.max(depth, maxDepth(child))
    31. }
    32. return depth + 1
    33. };

    image.png