N 叉樹的最大深度
阿新 • • 發佈:2020-08-04
此部落格連結: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; } }