[LeetCode] 559. Maximum Depth of N-ary Tree

Easy

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.

For example, given a 3-ary tree:

 

[LeetCode] 559. Maximum Depth of N-ary Tree

 

We should return its max depth, which is 3.

 

Note:

  1. The depth of the tree is at most 1000.
  2. The total number of nodes is at most 5000.

题目大意:求出n叉树的深度。

 

方法:遍历n叉树,找到最大高度。

方法一:递归遍历

代码如下:

class Solution {
public:
    int maxDepth(Node* root) {
        if(!root)return 0;
        int res=1;
        if(!root->children.empty()){
            int temp=0;
            for(auto child:root->children){
                temp=max(temp,maxDepth(child));
            }
            res+=temp;
        }
        return res;
    }
};

 

方法二:迭代法,使用队列queue,每次都将一整层的节点遍历一次,将他们的子节点放入队列中,同时层数+1.

代码如下:

class Solution {
public:
    int maxDepth(Node* root) {
        if(!root)return 0;
        int res=0;
        queue<Node*> q{{root}};
        while(!q.empty()){
            for(int i=q.size();i>0;--i){
                Node* temp=q.front();
                q.pop();
                if(!temp->children.empty()){
                    for(auto child:temp->children){
                        q.push(child);
                    }
                }
            }
            ++res;
        }
        return res;
    }
};

 

上一篇:Leetcode之深度优先搜索(DFS)专题-559. N叉树的最大深度(Maximum Depth of N-ary Tree)


下一篇:axios介绍