LeetCode 559. N 叉树的最大深度

截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
下载链接https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ
提取码:6666

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

来看下代码

public int maxDepth(Node root) {
    
    
    if (root == null)
        return 0;
    //当前节点子节点的个数
    int size = root.children.size();
    int max = 0;
    //递归计算所有子节点的深度,保留最大值
    for (int i = 0; i < size; i++) {
    
    
        max = Math.max(max, maxDepth(root.children.get(i)));
    }
    //当前树的最大深度就是子节点的最大深度加上1
    return max + 1;
}

在这里插入图片描述
在这里插入图片描述
来看下代码

public int maxDepth(Node root) {
    
    
    if (root == null)
        return 0;
    Queue<Node> queue = new LinkedList<>();
    queue.offer(root);
    int depth = 0;
    while (!queue.isEmpty()) {
    
    
        //到下一层了,深度要加1
        depth++;
        //levelCount是当前层的节点数,
        int levelCount = queue.size();
        for (int i = 0; i < levelCount; i++) {
    
    
            //当前层的每一个节点都要出队,然后再
            //把他们的子节点加入到队列中
            Node current = queue.poll();
            for (Node child : current.children)
                queue.offer(child);
        }
    }
    return depth;
}

猜你喜欢

转载自blog.csdn.net/abcdef314159/article/details/119379130