力扣-树-N 叉树的最大深度
N 叉树的最大深度(LeetCode 559)
- 题目概述:给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。
- 题目案例:
- 解题思路:这道题用递归的解法比较简单,只要计算出点的层数,然后选择最大的那个层数就可以了,我写的代码稍微复杂一点,所以以下展示两种
简单的简单在每次计算出来直接比较取较大的,而不把他放在数组里然后再遍历 - java稍复杂代码(递归)
class Solution {
public int maxDepth(Node root) {
if(root==null){
return 0;
}
List<Integer> layer=new ArrayList<>();
List<Node> children=root.children;
for(Node node:children){
int layer_num=1;
layer_num+=maxDepth(node);
layer.add(layer_num);
}
int max=1;
for(Integer num:layer){
if(num>max) max=num;
}
return max;
}
}
- java稍简易代码(递归)
class Solution1{
public int maxDepth(Node root) {
if (null == root) {
return 0;
}
int result = 1;
for (Node child : root.children) {
result = Math.max(result, 1 + maxDepth(child));
}
return result;
}