题目
解析
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public int maxDepth(Node root) {
if (root == null) {
return 0;
}
int depth = 0;
for (Node n : root.children) {
depth = Math.max(maxDepth(n), depth);
}
return depth + 1;
}
}
迭代
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public int maxDepth(Node root) {
if (root == null) {
return 0;
}
Deque<Node> deque = new LinkedList<>();
int ans = 0;
deque.offer(root);
while (!deque.isEmpty()) {
ans++;
int size = deque.size();
while (size-- > 0) {
Node cur = deque.pop();
for (Node n : cur.children) {
if (n != null) {
deque.offer(n);
}
}
}
}
return ans;
}
}