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:

We should return its max depth, which is 3.
Note:
- The depth of the tree is at most
1000. - The total number of nodes is at most
5000.
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
static const auto __ = [](){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
return nullptr;
}();
class Solution {
public:
int maxDepth(Node* root) {
if(root==NULL)
return 0;
int max = 0, curr = 0;
vector<Node*> stack;
//stack.reserve(5001);
vector<int> int_stack;
//int_stack.reserve(5001);
Node* temp;
stack.push_back(root);
int_stack.push_back(1);
while(!stack.empty())
{
temp = stack.back();
stack.pop_back();
curr = int_stack.back();
int_stack.pop_back();
if(temp->children.size()==0)
if(max < curr)
max = curr;
for(int i=0;i<temp->children.size();++i)
{
stack.push_back(temp->children[i]);
int_stack.push_back(curr+1);
}
}
return max;
}
};
本文探讨了如何在N叉树中找到最大深度的问题,通过遍历树结构并记录每个节点的深度,最终确定从根节点到最远叶节点的最长路径上的节点数,即为树的最大深度。
451

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



