五分钟学会理解二叉树的中序遍历
2018-11-18 本文已影响3人
五分钟学算法
LeetCode上第94 号问题:二叉树的中序遍历
题目
给定一个二叉树,返回它的 中序 遍历。
示例:
输入: [1,null,2,3]
输出: [1,3,2]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?
解题思路
用栈(Stack)的思路来处理问题。
中序遍历的顺序为左-根-右,具体算法为:
- 从根节点开始,先将根节点压入栈
- 然后再将其所有左子结点压入栈,取出栈顶节点,保存节点值
- 再将当前指针移到其右子节点上,若存在右子节点,则在下次循环时又可将其所有左子结点压入栈中
动画演示
动画演示GIF有点大,请稍微等待一下加载显示_

参考代码

更多内容
