559. Maximum Depth of N-ary Tree
1. Description
Given a n-ary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).
2. Example
Example 1:
Input: root = [1,null,3,2,4,null,5,6]
Output: 3
Example 2:
Input: 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]
Output: 5
3. Constraints
- The total number of nodes is in the range [0, $10^4$].
- The depth of the n-ary tree is less than or equal to 1000.
4. Solutions
Depth-First Search
n is the number of nodes
Time complexity: O(n)
Space complexity: O(height)
class Solution {
public:
int maxDepth(Node *root) {
if(root == nullptr) {
return 0;
}
get_max_depth_(root, 1);
return max_depth_;
}
private:
int max_depth_ = 0;
void get_max_depth_(Node *root, int depth) {
if (root->children.empty()) {
max_depth_ = max(max_depth_, depth);
} else {
for (auto node : root->children) {
get_max_depth_(node, depth + 1);
}
}
}
};