タイトル説明:
N-aryツリーが与えられた場合、その最大の深さを見つけます。最大深度とは、ルートノードから最も遠いリーフノードまでの最長パス上のノードの総数を指します。N-aryツリーの入力は、階層順にトラバースおよびシリアル化され、サブノードの各グループはnull値で区切られます(例を参照)。
ヒント:
木の深さは1000を超えません。
ツリー内のノードの数は[0、104]の間にあります。
例1:
入力:root = [1、null、3,2,4、null、5,6]
出力:3
例2:
入力:root = [1、null、2,3,4,5、null、null、6,7、null、8、null、9,10、null、null、11、null、12、null、 13、null、null、14]
出力:5
JAVAコードは次のとおりです。
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public int maxDepth(Node root) {
if (root == null) {
return 0;
}
Queue<Node> que = new LinkedList<>();
que.offer(root);
int count=0;
while (!que.isEmpty()) {
int size = que.size();
for (int i = 0; i < size; i++) {
Node t = que.poll();
for(Node child : t.children){
que.offer(child);
}
}
count++;
}
return count;
}
}
結果: