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

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);
            }
        }
    }
};
comments powered by Disqus