Ray-56/like-algorithms

✅559. N叉树的最大深度

Opened this issue · 1 comments

559. N叉树的最大深度

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

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

例如,给定一个 3叉树 :

三叉树

我们应返回其最大深度,3。

说明:

  • 树的深度不会超过 1000。
  • 树的节点总不会超过 5000。

层序遍历记录层

var maxDepth = function(root) {
    const queue = [];
    if (root) {
        queue.push(root);
    }
    let ret = 0;

    while (queue.length) {
        const len = queue.length;
        for (let i = 0; i < len; i++) {
            const node = queue.shift();
            queue.push(...node.children);
        }
        ret++;
    }
    return ret;
};

递归

var maxDepth = function(root) {
    if (!root) return 0;
    if (root.children.length === 0) return 1;

    let num = 0;
    root.children.forEach(child => {
        num = Math.max(num, maxDepth(child));
    });
    return num + 1;
};