链接https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree/

解题代码
/*
// 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) {
if(root==NULL){
return 0;
}
int max=-1, depth = 1;
getDepth(depth, max, root);
return max;
}
void getDepth(int& depth, int& max,Node* root){
if(root->children.size()==0){//根节点,计算该路径的深度
if(depth>max){
max=depth;
}
return;
}else{
int size = root->children.size();
for(int i=0;i<size;i++){
depth++;
getDepth(depth, max, root->children[i]);
depth--;
}
}
}
};
运行结果

本文提供了一种解决LeetCode上N叉树的最大深度问题的方法。通过递归遍历的方式,计算从根节点到最远叶子节点的最长路径长度。代码采用C++实现,并附带了解题思路。
282

被折叠的 条评论
为什么被折叠?



