题目

https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree/

题解

思路是 N 叉树的遍历(深度优先搜索)

/*
// Definition for a Node.
class Node {public int val;public List<Node> children;public Node() {}public Node(int _val) {val = _val;}public Node(int _val, List<Node> _children) {val = _val;children = _children;}
};
*/class Solution {int maxDepth = 0;public int maxDepth(Node root) {if (root == null) return 0;dfs(root, 1);return maxDepth;}public void dfs(Node node, int depth) {if (node == null) maxDepth = Math.max(maxDepth, depth);for (Node n : node.children) {dfs(n, depth + 1);}maxDepth = Math.max(maxDepth, depth);}
}

思路相同,但看到评论区有种更整洁的写法,即将 max 作为返回值在递归过程中传递:

public int maxDepth(Node root) {if(root == null) return 0;int max = 0;for(Node node : root.children){max = Math.max(maxDepth(node),max);}return max + 1;
}

leetcode 559. N 叉树的最大深度(Java版,N叉树的深度优先搜索)相关推荐

  1. leetcode 476. 数字的补数(Java版)| How to extract ‘k’ bits from a given position in a number

    题目 https://leetcode-cn.com/problems/number-complement/ 思路 我们想要返回已知数字的补数(num>=1). 思路: 获取 num 的二进制数 ...

  2. leetcode 561. 数组拆分 I(Java版)

    题目 https://leetcode-cn.com/problems/array-partition-i/ 题解 思路:先排序,然后让每相邻的两个值凑成一对. 原理是,要让每一个小值a带上未配对的最 ...

  3. leetcode 520. 检测大写字母(Java版)

    题目 https://leetcode-cn.com/problems/detect-capital/ 题解 两次遍历,O(n) 时间复杂度. 第一次遍历,统计大写字母个数 第二次遍历,根据大写字母个 ...

  4. leetcode 563. 二叉树的坡度(Java版)

    题目 https://leetcode-cn.com/problems/binary-tree-tilt/ 题解 从问题的描述中,可以清楚地了解到,我们需要在给定树的每个结点处找到其坡度,并将所有的坡 ...

  5. leetcode 543. 二叉树的直径(Java版)

    题目 https://leetcode-cn.com/problems/diameter-of-binary-tree/ 题解 1:暴力法 暴力解法:遍历这棵树,当以每个节点为根时,计算 距离,取最大 ...

  6. leetcode 463. 岛屿的周长(Java版)

    题目 https://leetcode-cn.com/problems/island-perimeter/ 题解 思路 需要三次遍历 首先,总边数=陆地个数*4 然后,横向遍历棋盘,纵向遍历棋盘,如果 ...

  7. leetcode 简单题合集(Java版)

    326. 3的幂 https://leetcode-cn.com/problems/power-of-three/ 题解: class Solution {public boolean isPower ...

  8. leetcode 268. 丢失的数字(Java版)

    题目 https://leetcode-cn.com/problems/missing-number/ 题解 解法 1 本题要求线性时间复杂度.仅使用额外常数空间的算法解决此问题,其实质是一个数学问题 ...

  9. LeetCode:733. 图像渲染(java版)——BFS是渣男/女,DFS是方知有

    题外话:看完题目,是不是一头雾水.有疑问就对了,不知道出题者的语文老师看了有啥感想. 题目意思其实很简单,就是给你一个初始坐标点(sr,sc),找和该点附近像素值相同的坐标,而这附近的定义就是上下左右 ...

  10. LeetCode 二叉树、N叉树的最大深度与最小深度(递归解)

    目录 104. 二叉树的最大深度 559. N叉树的最大深度 111. 二叉树的最小深度 之前的笔记中,已经用层序遍历解决过这个问题了 现在试着用深度的解法去求解 104. 二叉树的最大深度 给定一个 ...

最新文章

  1. Spring Boot统一异常处理的拦截指南
  2. 2021年第3周LDL方向的周报
  3. 关于BigInteger的加减乘除使用
  4. Java8基础之反射
  5. 基础总结篇之二:Activity的四种launchMode
  6. 北京住房仰视链,你在第几层?
  7. UNCODE 与 ANSI 编码互相转换
  8. 神经网络编程的34个案例,神经网络程序实例100篇
  9. SIP音调通话调研结果
  10. EXCEL的换行符等,输入,替换,和 char(10) char(13)等
  11. Docker下运行Presto访问Redis及BI展示
  12. MOSFet 的类型和区别:NP沟道,增强耗尽
  13. 磁编码器MT6835_SPI读取位置信息
  14. 看完让你彻底理解 WebSocket 原理
  15. 计算机程序设计员(java三级)应注意什么?
  16. 手把手教你用c语言编写网络病毒
  17. 有没有测试鼠标是否丢帧的软件,深澜大叔教你如何准确检测鼠标是否丢帧
  18. 深圳软件测试培训:事件与事件处理
  19. 《微SaaS创富周刊》第3期:GPT-3\ChatGPT、Stable Diffusion等AI模型驱动的微SaaS创意盘点
  20. ICH4芯片LAN控制器寄存器

热门文章

  1. POJ - 3693 Maximum repetition substring(后缀数组+RMQ)
  2. HDU - 3966 Aragorn's Story(树链剖分+线段树)
  3. 算法模板-广度优先遍历
  4. php tp框架调用方法,thinkPHP框架使用方法
  5. IOCP 浅析与实例
  6. 秒杀多线程第十二篇 多线程同步内功心法——PV操作上
  7. gh0st源码分析与远控的编写(二)
  8. MFC拖拽文件到任意EDIT控件
  9. [转]I,P,B帧和PTS,DTS的关系
  10. 告别DNS劫持,一文读懂DoH