外观
一句话答案
前中后序递归直接写,迭代用栈模拟:前序(弹根压右压左),中序(一路向左入栈再弹),层序用队列 BFS。
核心要点
前序(根左右)迭代: 栈中弹出访问,先压右再压左 中序(左根右)迭代: 一路向左入栈,弹出访问,转右子 层序(BFS): 队列逐层出入
高频题: 二叉树最大深度 / 翻转二叉树 / 路径总和 / 最近公共祖先
追问与易错
追问方向:
- 前序迭代和递归哪个好?
- Morris 遍历了解吗?
- 怎么从前序+中序重建二叉树?
易错点:
- ❌ 递归一定比迭代慢——差距不大且更简洁
- ❌ 层序遍历只能用队列——可以但队列是标准做法
💡 记忆锚点
遍历口诀看"根"的位置:前序=根左右(先办事再下去),中序=左根右(先下去再办事),后序=左右根(先下去最后办事)。迭代用栈模拟递归:前序最简单(弹出访问,先压右再压左),中序稍难(一路向左压栈到底,弹出访问再转右),层序用队列一层层出。