问题描述:
给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
例如,给定一个 3叉树
:
我们应返回其最大深度,3。
说明:
- 树的深度不会超过
1000
。 - 树的节点总不会超过
5000
。
基本思路:
没啥好想的,就是直接递归。
不过你要知道我们TreeNode结构体内的TreeNode*类型的left和right改为了vector<TreeNode*> children.
这就说明我们递归终止的条件不能简单地取处理NULL节点了。
而是要根据children这个vector的大小来进行判断。
还有一点区别就在于我们的到达NULL是到达了叶子节点的下一个节点。
而多叉树如果children的大小为0的话,说明到达了叶子节点。
AC代码:
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val, vector<Node*> _childr