LeetCode559. N叉樹的最大深度
阿新 • • 發佈:2018-12-14
給定一個N叉樹,找到其最大深度。
最大深度是指從根節點到最遠葉子節點的最長路徑上的節點總數。
例如,給定一個 3叉樹
:
我們應返回其最大深度,3。
說明:
- 樹的深度不會超過
1000
。 - 樹的節點總不會超過
5000
。
思路:廣度優先遍歷樹,計算樹的層數,最大層數就是樹最大深度。
/* // Definition for a Node. class Node { public int val; public List<Node> children; public Node() {} public Node(int _val,List<Node> _children) { val = _val; children = _children; } }; */ class Solution { public int maxDepth(Node root) { if(null==root){ return 0; } ArrayDeque<Node> queue=new ArrayDeque<Node>(); queue.add(root); int count=0; while(!queue.isEmpty()){ int size=queue.size(); for(int i=0;i<size;i++){ Node node=queue.removeFirst(); for(Node n:node.children){ queue.add(n); } } count++; } return count; } }
解法二:
/* // Definition for a Node. class Node { public int val; public List<Node> children; public Node() {} public Node(int _val,List<Node> _children) { val = _val; children = _children; } }; */ class Solution { public int maxDepth(Node root) { if(null==root){ return 0; } int res=1; for(Node n:root.children){ res=Math.max(maxDepth2(n)+1,res); } return res; } }