二叉树的最大深度和最小深度浅析
二叉树的最大深度:
递归的分别获取左右子树的深度,返回较大的深度,每次加1即可。
代码:
1 public static int maxDepth(TreeNode root){ 2 if(root == null){ 3 return 0; 4 } 5 int len1 = 1+maxDepth(root.left); 6 int len2 = 1+maxDepth(root.right); 7 return len1 >= len2? len1:len2; 8 }
二叉树的最小深度:
设置一个深度计数变量
每次获取二叉树的一层结点,依次遍历该层的结点,第一次遇到叶子结点就返回,此时的深度是最小深度。
1 public static int minDepth(TreeNode root){ 2 if(root == null){ 3 return 0; 4 } 5 //深度计数变量 6 int height = 0; 7 //存取该层结点集合 8 ArrayList<TreeNode> arr = new ArrayList<TreeNode>(); 9 arr.add(root); 10 return minDepth(height,arr); 11 } 12 13 public static int minDepth(int height, ArrayList<TreeNode> arr) { 14 //存取下一层的结点集合 15 ArrayList<TreeNode> arr1 = new ArrayList<TreeNode>(); 16 height++; 17 for(TreeNode tree: arr){ 18 //遇到叶子结点就返回 19 if(tree.left == null && tree.right == null){ 20 return height; 21 } 22 23 if(tree.left != null){ 24 arr1.add(tree.left); 25 } 26 27 if(tree.right != null){ 28 arr1.add(tree.right); 29 } 30 } 31 return minDepth(height, arr1); 32 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)