class Solution {
public:
int maxDepth(Node* root) {
int depth = ;
if (root != NULL)
{
queue<Node> Q;
Q.push(Node(root->val, root->children));
while (!Q.empty())
{
depth++;//层数自增
vector<Node> N;
N.clear();
while (!Q.empty())
{
Node livenode;
livenode = Q.front();
Q.pop();
for (auto n : livenode.children)
{
N.push_back(Node(n->val, n->children));
}
} for (auto n : N)
{
Q.push(Node(n.val, n.children));
}
}
}
return depth; }
};

另一种解法,递归实现:

class Solution
{
public:
int maxDepth(Node* root)
{
if (root == NULL)
return ;
int dep = ; //当前节点的深度
for (auto n : root->children)
{
dep = max(dep, maxDepth(n)); //子节点最大深度
}
return dep + ; //子节点最大深度+当前层深度(1)
}
};

递归的逻辑是:当前节点的最大深度,一定是深度最大的子节点的深度+1。

leetcode559的更多相关文章

  1. LeetCode559. Maximum Depth of N-ary Tree

    第一次写出了具有迭代和递归的函数,还是有点收获的,虽然题目比较简答 当要对某些对象重复使用时,考虑循环,也就是迭代 当函数可以简化一个重复的操作时,考虑递归,而且就当下一次使用这和函数的结果已经有啦, ...

  2. Leetcode559.Maximum Depth of N-ary TreeN叉树的最大深度

    给定一个 N 叉树,找到其最大深度. 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数. 说明: 树的深度不会超过 1000. 树的节点总不会超过 5000. class Solution { ...

  3. LeetCode559 N叉树的最大深度

    题目: 思路: 直接递归求解最大深度就可以,这里主要记录一下Java中比较获得两个数中最大值的方法. import java.math.*; class Solution { public int m ...

  4. LeetCode559.N 叉树的最大深度

    题目 法一.层序遍历 1 class Solution { 2 public: 3 int maxDepth(Node* root) { 4 if(root== NULL) return 0; 5 q ...

随机推荐

  1. HDU 6096 AC自动机

    n个字符串 m个询问 每个询问给出前后缀 并且不重合 问有多少个满足 m挺大 如果在线只能考虑logn的算法 官方题解:对n个串分别存正序倒序 分别按照字典序sort 每一个串就可以被化作一个点 那么 ...

  2. BZOJ 1941 kd-tree

    模板题 题意说的可能有点不清楚 一开始的点必须在给定的n个点里面 所以枚举点 然后ask最大和最小值 估价函数中 最大值的写法和最小值不同 全部取max 而最小值在估价时 如果在某个点管辖的空间里 就 ...

  3. php提前输出响应及注意问题

    1.浏览器和服务器之间是通过HTTP进行通信的,浏览器发送请求给服务器,服务器处理完请求后,发送响应结果给浏览器,浏览器展示给用户.如果服务器处理请求时间比较长,那么浏览器就需要等待服务器的处理结果. ...

  4. devstack apache2/keystone 没有启动

    在devstack中./rejoin-stack.sh 发现apache2/keystone 没有启动 单单手动启动apach2服务之后keystone并没有启动 sudo service apach ...

  5. demo(幸福大转盘)总结

    百度推广首页demo 在<head>与</head>之间加入代码 <link rel="shortcut icon" href="favic ...

  6. spring: 使用嵌入式数据源 EmbeddedDatabaseBuilder

    嵌入式数据源作为应用的一部分运行,非常适合在开发和测试环境中使用,但是不适合用于生产环境.因为在使用嵌入式数据源的情况下,你可以在每次应用启动或者每次运行单元测试之前初始化测试数据. 使用Spring ...

  7. 2017-02-20 Sql Server2016安装后无法找到Microsoft Sql Server Management Studio管理器

    最近安装的sql sever2016后发现没有Sql server management studio管理工具,无法操作sql server 解决方案,可去官网单独下载 Sql Server Mana ...

  8. 如何关闭Windows10系统更新

    单击左下角开始菜单点击设置图标进入设置界面    在设置窗口中输入“服务”搜索  在结果中选择查看本地服务  在服务列表中找到windows update服务双击它  点击停止按钮先停止该服务,稍等片 ...

  9. uva10780(分解质因数)

    可以直接用高精度来暴力求. 也可以不用高精度: 把m分解质因数,记录每个因数和它的次数.然后计算每个因数在n的阶乘里出现了多少次,再把这个次数除以它在m中的次数,就是可能的k值.取最小的k. #inc ...

  10. Buffer 和Cache 的区别

    Buffer 和Cache 的区别buffer 与cache 操作的对象就不一样.buffer