给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。
在这道题中首先确定迭代的结束条件,结束条件就是节点没有子节点。
所以,我们可以在第一个判断根节点是否为空,若为空就直接返回0,若根节点的子节点为空,则直接返回1.然后就是根节点不为空,这样子我们就将根节点的三种情况清楚的区分了出来。
我们可以通过迭代返回出每个根节点的子节点的深度值,然后定义个成员变量max,然后每次迭代完就与max比较,得到较大值,将根节点的子节点遍历一遍,我们就可以得到根节点的最大深度值。
class Solution {
public int maxDepth(Node root) {
if(root == null){
return 0;
}
if(root.children == null){
return 1;
}
int max = 0;
for(Node node:root.children){
max = Math.max(max,maxDepth(node));
}
return max + 1;
}
}