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. Web 应用程序项目与 Visual Studio 中的网站项目的异同

    要查看英语原文,请勾选“英语”复选框.也可将鼠标指针移到文本上,在弹出窗口中显示英语原文. 翻译 英语 本文档已存档,并且将不进行维护. Web 应用程序项目与 Visual Studio 中的网站项 ...

  2. JavaWeb -- sevlet 监听器

    1.三个域对象的监听(创建和销毁) servletContext,  session, request 监听器 ServletContext监听器: public class MyServletCon ...

  3. nova Reboot (重启)

    物理机有两种重启方式:一种从操作系统中重启,一种直接先断电然后再接通电源.虚机的重启也有类似的两种方式:Soft Reboot 和 Hard Reboot.nova reboot 命令在不使用 “-h ...

  4. print webpage

    使用浏览器打印网页时(A4纸)有一个固定的尺寸: 高级浏览器: width:700px height:1000px

  5. PHP中preg_match正则匹配的/u /i /s是什么意思

    /u 表示按unicode(utf-8)匹配(主要针对多字节比如汉字) /i 表示不区分大小写(如果表达式里面有 a, 那么 A 也是匹配对象) /s 表示将字符串视为单行来匹配

  6. npm package管理

    每个项目都包含一个package.json文件用来管理项目依赖的包以及项目相关信息. 其中比较总要的就是dependencies和devDependencies两项,分别指定了项目运行所依赖的模块.项 ...

  7. uva 103 经典DAG变形

    https://vjudge.net/problem/UVA-103 也是一个经典的DAG模型,因为书上的翻译和原文不照导致WA两发= = 对于同一维度的两个箱子A,B,A可以嵌套在B中的一个充分条件 ...

  8. RK30SDK开发板驱动分析(一):platform device 的概念与注册

    做过51单片机或者ARM开发的人都知道,单片机内部都有自己的“片内外设”,比如UART,比如I2C,比如SPI等等... 写单片机程序的时候,比如对于UART的驱动,我们都是在程序中直接写一套函数,来 ...

  9. LeetCode OJ:Binary Tree Level Order Traversal(二叉树的层序遍历)

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  10. centos type.h 编译错误问题

    # ifndef __int8_t_defined # define __int8_t_defined __intN_t (, __QI__); __intN_t (, __HI__); __intN ...