Skip to content
基础

一句话答案

前中后序递归直接写,迭代用栈模拟:前序(弹根压右压左),中序(一路向左入栈再弹),层序用队列 BFS。

核心要点

前序(根左右)迭代: 栈中弹出访问,先压右再压左 中序(左根右)迭代: 一路向左入栈,弹出访问,转右子 层序(BFS): 队列逐层出入

高频题: 二叉树最大深度 / 翻转二叉树 / 路径总和 / 最近公共祖先

追问与易错

追问方向:

  • 前序迭代和递归哪个好?
  • Morris 遍历了解吗?
  • 怎么从前序+中序重建二叉树?

易错点:

  • ❌ 递归一定比迭代慢——差距不大且更简洁
  • ❌ 层序遍历只能用队列——可以但队列是标准做法

💡 记忆锚点

遍历口诀看"根"的位置:前序=根左右(先办事再下去),中序=左根右(先下去再办事),后序=左右根(先下去最后办事)。迭代用栈模拟递归:前序最简单(弹出访问,先压右再压左),中序稍难(一路向左压栈到底,弹出访问再转右),层序用队列一层层出。