题目
给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。
解题思路
树的深度,用DFS或者BFS都可以。Leetcode上的树真有意思,没有儿子节点的节点的 children
不是赋值为 null
,而是给他了一个空构造,他的 children.size()
是 0
。
代码
class Solution {
public int maxDepth(Node root) {
if (root == null) return 0;
if (root.children == null || root.children.size() == 0) return 1;
int length = root.children.size(), ans = 0;
for (int i = 0; i < length; i++) {
ans = Math.max(ans, 1 + maxDepth(root.children.get(i)));
}
return ans;
}
}
class Solution {
public int maxDepth(Node root) {
if (root == null) return 0;
if (root.children == null) return 1;
int length = root.children.size(), ans = 0;
for (int i = 0; i < length; i++) {
ans = Math.max(ans, maxDepth(root.children.get(i)));
}
return 1 + ans;
}
}