LeetCode 559. N 叉树的最大深度
Posted 数据结构和算法
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 559. N 叉树的最大深度相关的知识,希望对你有一定的参考价值。
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ
提取码:6666
来看下代码
public int maxDepth(Node root) {
if (root == null)
return 0;
//当前节点子节点的个数
int size = root.children.size();
int max = 0;
//递归计算所有子节点的深度,保留最大值
for (int i = 0; i < size; i++) {
max = Math.max(max, maxDepth(root.children.get(i)));
}
//当前树的最大深度就是子节点的最大深度加上1
return max + 1;
}
来看下代码
public int maxDepth(Node root) {
if (root == null)
return 0;
Queue<Node> queue = new LinkedList<>();
queue.offer(root);
int depth = 0;
while (!queue.isEmpty()) {
//到下一层了,深度要加1
depth++;
//levelCount是当前层的节点数,
int levelCount = queue.size();
for (int i = 0; i < levelCount; i++) {
//当前层的每一个节点都要出队,然后再
//把他们的子节点加入到队列中
Node current = queue.poll();
for (Node child : current.children)
queue.offer(child);
}
}
return depth;
}
以上是关于LeetCode 559. N 叉树的最大深度的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Algorithm 559. N 叉树的最大深度