当前位置: 首页 > news >正文

数据结构--中序遍历

中序遍历(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 升序输出、表达式树求值
前序→ 左 → 右复制树、序列化
后序左 → 右 →删除树、计算目录大小

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

http://www.jsqmd.com/news/272941/

相关文章:

  • 2026伺服精密行星减速机厂家选择指导及推荐,减速器,行星减速机厂家排名解析 - 速递信息
  • 2026年天津遗嘱继承律师电话推荐:专业服务与联系要点解析 - 品牌推荐
  • 2026年大模型必学指南|收藏这篇,抢占技术红利窗口
  • 功能全面整合的外卖点餐系统,打造智慧餐厅,源码全开源可以二开
  • 2026年天津离婚纠纷律所联系电话推荐:核心团队与特色服务解析 - 品牌推荐
  • 必收藏!美团大模型面试“逼疯”候选人?一文吃透KV-Cache与推理流程
  • springboot海洋环保小程序系统
  • 2026年1月推荐榜:正规实盘配资实力PK,哪家综合实力强? - 资讯焦点
  • 金融AI营销合规困境?2026私有化部署榜单看原圈科技如何破局
  • set:零散操作
  • springboot河南特色美食分享系统设计开发实现
  • 立体导航与无人驾驶器导航
  • 仿竹篱笆及竹篱笆厂家权威评测:五大厂家综合实力与口碑深度排名 - 真知灼见33
  • 无缝隙高精度气象数值预报技术
  • 油皮本命洁面首选!2026实测5款洗卸控油神器,角小匠12小时清爽登顶 - 资讯焦点
  • 2026年天津遗嘱继承律师联系电话推荐:精选推荐与使用指南 - 品牌推荐
  • springboot滑雪售票系统设计与实现
  • 聚焦ROI转化,2026年佛山高转化率短视频代运营公司实战榜 - 速递信息
  • springboot基于Android的宠物社区app设计与实现
  • 大模型与提示交互机制解析
  • 极简主义建筑空镜头哪里找?10个素材站推荐(2026)
  • 完整教程:C/C++内置库函数(2):智能指针
  • 10个赛博朋克素材网站:科技感视频必备!(2026年更新)
  • 好写作AI|论文写作“敏捷开发”模式:别再当“瀑布模型”的炮灰了!
  • 2026年天津离婚纠纷律所联系电话推荐:精选推荐与使用指南 - 品牌推荐
  • 细胞抗衰成分大比拼:NMN、NAD+、NMNH哪一个成分抗衰效果最好? - 速递信息
  • 2026年史密斯训练器/力量训练器/综合训练器/龙门架训练器厂家竞争格局与顶级厂商深度分析报告 - 2026年企业推荐榜
  • 社交媒体竖屏视频素材去哪找?2026年10个宝藏网站大盘点
  • 安阳同昌新材料受客户认可吗,全国金属回收企业排名新鲜出炉 - 工业品牌热点
  • 科普视频动画素材库:2026年10个靠谱网站推荐