news 2026/8/8 13:38:00

数据结构--中序遍历

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据结构--中序遍历

中序遍历(Inorder Traversal)是二叉树三种基本深度优先遍历方式之一(另外两种是前序、后序)。它的核心规则非常简单:

先遍历左子树 → 再访问根节点 → 最后遍历右子树
(简称:左 - 根 - 右


🌳 通俗理解

想象你站在二叉树的根节点,要按顺序“拜访”所有节点:

  1. 先一头扎进左子树,用同样的规则(左→根→右)遍历它;
  2. 等左子树全部拜访完,才回到当前根节点并记录它;
  3. 最后去拜访右子树,同样用(左→根→右)的规则。

这个过程天然具有递归性质——每个子树都是一个更小的二叉树,处理逻辑完全相同。


📌 关键特性

  • 对二叉搜索树(BST)有特殊意义
    中序遍历 BST 的结果一定是升序序列(因为 BST 性质:左子树 < 根 < 右子树)。
  • 时间复杂度:O(n)(每个节点访问一次)
    空间复杂度:O(h)(h 为树高,递归栈或显式栈的深度)。

🌰 举例说明

A / \ B C / \ \ D E F

中序遍历步骤

  1. 从根A开始,先遍历左子树(以B为根)
    • 遍历B的左子树(D)→ 访问D
    • 访问B
    • 遍历B的右子树(E)→ 访问E
  2. 访问根A
  3. 遍历右子树(以C为根)
    • 访问CC无左子树)
    • 遍历C的右子树(F)→ 访问F

结果[D, B, E, A, C, F]


💡 为什么叫“中序”?

  • “中”指根节点在遍历顺序的中间位置(左子树之后,右子树之前)。
  • 对比其他遍历:
    • 前序:根 → 左 → 右(根在
    • 后序:左 → 右 → 根(根在

🛠 实现方式

方法 1:递归(最直观)
def inorderTraversal(root): if not root: return [] return (inorderTraversal(root.left) + [root.val] + inorderTraversal(root.right))
方法 2:迭代(用栈模拟递归)
def inorderTraversal(root): result, stack, current = [], [], root while current or stack: # 一路向左,将路径节点入栈 while current: stack.append(current) current = current.left # 弹出栈顶(最左节点),访问它 current = stack.pop() result.append(current.val) # 转向右子树 current = current.right return result

✅ 总结

表格

遍历类型顺序应用场景
中序左 →→ 右BST 升序输出、表达式树求值
前序→ 左 → 右复制树、序列化
后序左 → 右 →删除树、计算目录大小

中序遍历的本质是深度优先探索左分支,回溯时处理根,再探索右分支,这种“分治”思想是树算法的基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/8 0:18:29

AI校服识别算法的成本+规划

AI校服识别算法的成本可从开发、部署、运行和维护四个阶段进行系统分析。结合当前&#xff08;截至2026年初&#xff09;公开资料与行业实践&#xff0c;其成本构成如下&#xff1a;一、核心成本构成&#xff08;按模块分类&#xff09;1. 算法研发成本人力成本&#xff1a;计算…

作者头像 李华
网站建设 2026/8/8 6:29:46

MySQL索引完全指南:让你的查询速度飞起来

以下是 2025–2026 年视角下 MySQL 索引的完整、实用指南&#xff08;基于 MySQL 8.0 ~ 8.4 主流版本 InnoDB 引擎&#xff09;。 内容结构化、带代码示例、常见误区、优化 checklist 和真实案例&#xff0c;目标是让你读完就能真正把查询速度提起来&#xff0c;而不是只停留…

作者头像 李华
网站建设 2026/7/31 8:04:07

功能全面整合的外卖点餐系统,打造智慧餐厅,源码全开源可以二开

温馨提示&#xff1a;文末有资源获取方式智慧餐厅的构建离不开一个强大、稳定且功能集成的软件核心。最新发布的外卖点餐小程序商业运营版V10.8&#xff0c;正是这样一个经过全面升级的核心系统。它不仅解决了以往版本中的细微问题&#xff0c;更在功能整合与管理效率上实现了显…

作者头像 李华
网站建设 2026/7/31 7:40:02

硬连线控制器的常规 CPU 设计

硬连线控制器的常规 CPU 设计 第一章课程设计简述 1.1 教学目的 1、融会贯通计算机组成原理与体系结构课程各章教学内容&#xff0c;通过知识的综合运用&#xff0c;加深对 CPU 各模块工作原理及相互联系的认识&#xff1b; 2、掌握硬连线控制器的设计方法&#xff1b; 3、…

作者头像 李华
网站建设 2026/7/31 8:29:28

全流程智能论文伙伴,百考通从选题到答辩,一步到位!

还在为毕业论文手忙脚乱&#xff1f;选题无从下手、结构混乱、格式反复出错、原创性难达标……别焦虑&#xff01;百考通&#xff08;[https://www.baikaotongai.com](https://www.baikaotongai.com)&#xff09;推出覆盖论文全周期的智能辅助系统&#xff0c;专为本科生、硕士…

作者头像 李华