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;
        
    }
}

 

posted @ 2020-08-04 19:18  萍2樱释  阅读(231)  评论(0编辑  收藏  举报