返回N叉树的最大深度

1、描述

给定一个 N 叉树,找到其最大深度。

最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。

2、关键字

N叉树,深度

3、思路

和之前的二叉树的最大深度一样,层序遍历BFS

4、notes

就是按照上一篇文章那样,BFS2层循环,3个部分
N叉树,就是把左右孩纸变成了子树的序列,然后用for语句完成下一层队列的初始化工作就好了。

复习:for语句使用;

5、复杂度

时间O(N):n是节点的个数,遍历所有的节点
空间:O(N):n是节点的个数,当只有一个根节点时候是 O(N),当时有两层时,是O(n-1),所以是O(N)

6、code

/*
// Definition for a Node.
class Node {
public:int val;vector<Node*> children;Node() {}Node(int _val) {val = _val;}Node(int _val, vector<Node*> _children) {val = _val;children = _children;}
};
*/class Solution {
public:int maxDepth(Node* root) {int res=1;if(!root) return 0;queue<Node*>que;que.push(root);while(!que.empty()){int longth=que.size();while(longth--){auto tem=que.front();que.pop();for(auto ch :tem->children){que.push(ch);}}if(!que.empty())res++;}return res;}
};