559. Maximum Depth of N-ary Tree
Last updated
Last updated
// Recursion
int maxDepth(Node* root) { // time: O(n); space: O(n)
if (!root) return 0;
int max_child_depth = 0;
for (Node*& child : root->children) {
max_child_depth = max(max_child_depth, maxDepth(child));
}
return max_child_depth + 1;
}// Iteration (Level Order Traversal)
int maxDepth(Node* root) { // time: O(n); space: O(n)
if (!root) return 0;
queue<Node*> q;
q.push(root);
int res = 0;
while (!q.empty()) {
++res;
int n = q.size();
for (int i = 0; i < n; ++i) {
Node* cur = q.front(); q.pop();
for (Node*& child : cur->children) {
q.push(child);
}
}
}
return res;
}