来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree
题目描述:
给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。
示例 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
思路:
直接深度遍历即可.
代码实现:
class Solution {
public int maxDepth(Node root) {
return dfs(root);
}
public int dfs(Node root) {
if (root == null) return 0;
int idx = 0;
for (Node node : root.children) {
idx = Math.max(idx, dfs(node));
}
return idx + 1;
}
}
class Solution {
public int result = 0;
public int maxDepth(Node root) {
dfs(root, 1);
return result;
}
public void dfs(Node root, int idx) {
if (root == null) return;
if (root.children == null || root.children.size() == 0) {
if (idx > result) result = idx;
return;
}
for (Node node : root.children) {
dfs(node, idx + 1);
}
}
}
网友评论