算法分析与设计第三周作业
题目
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.
大意:给出一个n叉树,寻找他的最大深度。最大深度是指从根节点开始到达的最远结点的路径的长度。
题目传送门
分析
要找出n叉树的最大深度,只需要进行迭代遍历即可。若一个节点是叶子节点,那么返回1,若不是叶子节点,则返回各个子树的最大深度的最大值。迭代遍历到根节点,即可得到整棵树的最大深度。
代码
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
int maxDepth(Node* root) {
if(root == nullptr) return 0;
int dep = 0;
for(auto n : root->children)
dep = max(dep, maxDepth(n));
return dep + 1;
}
};