此博客链接: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; } }