N叉树的最大深度
给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
例如,给定一个 3叉树 :
我们应返回其最大深度,3。
思路+代码+注释:
private int maxDepth=0;
public int maxDepth(Node root) {
/*
思路:从头节点开始遍历,每往下遍历一个节点深度depth就加1,当遍历到叶子节点也就是节点的list长度为0时,看节点的深度depth是否比
maxDepth大如果是那么将depth赋值给maxDepth返回
*/
if (root==null)
{
return 0;
}
maxDepth(root,1);
return maxDepth;
}
private void maxDepth(Node node,int depth)
{
List<Node> nodes=node.children;
if (nodes.size()==0)
{
if (depth>maxDepth)
{
maxDepth=depth;
}
return ;
}
for (Node n:nodes
) {
maxDepth(n,depth+1);
}
}