二叉树的中序遍历
二叉树的中序遍历
给定一个二叉树的根节点 root
,返回 它的 中序 遍历 。
示例 1:
plaintext
1 | 输入:root = [1,null,2,3] |
示例 2:
plaintext
1 | 输入:root = [] |
示例 3:
plaintext
1 | 输入:root = [1] |
提示:
- 树中节点数目在范围
[0, 100]
内 -100 <= Node.val <= 100
进阶: 递归算法很简单,你可以通过迭代算法完成吗?
递归写法
java
1 |
|
迭代写法
递归的写法是不断往左走,左边走不下去了,就打印当前节点,并转向右边,然后右边继续这个过程。
转化成非递归写法就是用栈模拟系统栈,一直将左孩子入栈,如果没有左孩子了,就打印也就是出栈,然后转向右孩子。
如果栈不空并且root
不为null
一直循环:
- 如果
root
不为空,将root
入栈,root
指向左孩子 - 如果
root
为空,栈顶出栈,栈顶右孩子入栈
java
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 面试资料!