1. 程式人生 > 實用技巧 >N 叉樹的最大深度

N 叉樹的最大深度

此部落格連結:https://www.cnblogs.com/ping2yingshi/p/13435292.html

N叉樹的最大深度

題目連結:https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree/submissions/

給定一個 N 叉樹,找到其最大深度。

最大深度是指從根節點到最遠葉子節點的最長路徑上的節點總數。

例如,給定一個3叉樹:

我們應返回其最大深度,3。

題解:

思路:此題和二叉樹的層次遍歷一樣,只是再進行二叉樹的層次遍歷時,進佇列的是節點的孩子,而不只是左右孩子。

1.先定義一個佇列。

2.頭節點進佇列。

3.頭節點出佇列,然後把頭節點的孩子都進佇列。

4.孩子出佇列時,把節點所有的孩子都進佇列。

5.記錄樹的層次。

程式碼如下:

class Solution {
    public int maxDepth(Node root) {
        if(root==null)
        return 0;
        int len=0;
        Queue <Node> queue=new LinkedList();
        queue.add(root);
        while(!queue.isEmpty())
        {
            len
++; int lengt=queue.size(); for(int i=0;i<lengt;i++) { Node que=queue.poll(); for(Node node:que.children) if(node!=null) queue.add(node); } } return len; } }