news 2026/5/1 4:23:07

二叉树--求最小深度(迭代和递归)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二叉树--求最小深度(迭代和递归)

使用了两种解法,递归法和迭代法。

两种方法的对比总结

  1. DFS (方法一minDepth):

    • 特点: 代码简洁,逻辑通过max巧妙处理了单链树的情况。

    • 缺点: 必须遍历完所有的分支才能确定谁最小。如果树严重左偏或右偏,栈深度较大。

  2. BFS (方法二levelOrder):

    • 特点: 利用队列层序遍历。

    • 优点:效率更高。因为它只要找到第一个叶子节点就直接return depth了,不需要像 DFS 那样把深处的节点也遍历一遍。在求“最短路径”或“最小深度”类问题时,BFS 通常是首选。

递归法

注意:如果左子树为空(left=0)或右子树为空(right=0),说明这不是叶子节点(最小深度要找到叶子节点),我们不能取 min(因为 min 会取到 0),必须取非空的那一侧(即 max)。

代码

// ========================================== // 方法一:递归法 (DFS - 后序遍历) // 核心思想:分别求左右子树深度,处理单支情况,最后取最小值 // ========================================== int minDepth(TreeNode* root) { if (root == NULL) return 0; // 终止条件 // 递归计算左右子树的深度 int left = minDepth(root->left); int right = minDepth(root->right); // 【关键逻辑】 // 如果左子树为空(left=0)或右子树为空(right=0),说明这不是叶子节点, // 我们不能取 min(因为 min 会取到 0),必须取非空的那一侧(即 max)。 // 例如:树 1->2,根节点 1 不是叶子,必须走 2 那边。 if (left == 0 || right == 0) { return max(left, right) + 1; } // 左右都不为空,说明是正常的左右分支,取最小的一边 + 根节点 1 return min(left, right) + 1; }

迭代法

使用层序遍历,一层一层往下找,一旦遇到第一个“叶子节点”,马上返回深度。

代码

// ========================================== // 方法二:迭代法 (BFS - 广度优先搜索) // 核心思想:一层一层往下找,一旦遇到第一个“叶子节点”,马上返回深度。 // 优点:对于求最小深度,这通常比 DFS 更快,因为它不需要遍历整棵树。 // ========================================== int minDepthBFS(TreeNode* root) { int depth = 0; queue<TreeNode*> q; if (root) q.push(root); while (!q.empty()) { int size = q.size(); // 记录当前层有多少个节点 depth++; // 开始处理新的一层,深度 +1 for (int i = 0; i < size; i++) { TreeNode* node = q.front(); q.pop(); // 【核心优化】 // 如果当前节点没有左孩子且没有右孩子,说明它是我们遇到的 // “层级最浅”的叶子节点。直接返回当前深度,无需继续遍历! if (node->left) q.push(node->left); if (node->right) q.push(node->right); if (!node->left && !node->right) return depth; // 找到最近的叶子,直接返回结果 } } return depth; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 23:31:13

Java基于Spring Boot+Vue的学业导师管理系统的设计与实现

所需该项目可以在最下面查看联系方式&#xff0c;为防止迷路可以收藏文章&#xff0c;以防后期找不到 项目介绍 在当今高等教育体系中&#xff0c;本科生学业导师制度已成为提升教学质量、促进学生个性化发展的重要途径。然而&#xff0c;随着高校扩招和学生人数的激增&#…

作者头像 李华
网站建设 2026/4/23 13:57:10

亲测好用9个AI论文写作软件,专科生轻松搞定毕业论文!

亲测好用9个AI论文写作软件&#xff0c;专科生轻松搞定毕业论文&#xff01; 专科生的论文写作救星&#xff0c;AI 工具如何改变你的学习节奏&#xff1f; 在当今这个信息爆炸的时代&#xff0c;学术写作早已不再是少数人的专属。对于专科生而言&#xff0c;撰写一篇合格的毕业…

作者头像 李华
网站建设 2026/4/16 19:23:02

专精特新小巨人发展,为何必须依靠外脑?又该找谁?

专精特新小巨人发展&#xff0c;为何必须依靠外脑&#xff1f;又该找谁&#xff1f;专精特新小巨人企业正站在发展的关键节点&#xff1a;一方面拥有核心技术优势&#xff0c;另一方面却面临从“技术冠军”向“生态领袖”跃迁的复杂挑战。在这个阶段&#xff0c;仅靠企业内部力…

作者头像 李华
网站建设 2026/4/19 8:14:19

成都余行专利代理事务所:专精特新企业知识产权全流程战略护航专家

成都余行专利代理事务所&#xff1a;专精特新企业知识产权全流程战略护航专家 在专精特新企业的发展征程中&#xff0c;知识产权不仅是技术创新的保护伞&#xff0c;更是企业构建核心竞争力和生态话语权的战略武器。然而&#xff0c;专利工作绝非简单的“申请-授权”线性流程&…

作者头像 李华