中序遍历
九月 02, 2021
中序遍历
这道题在看了好多个视频以后终于大概理解了em
第一种方法是用递归的方法
分别对应三种遍历
前序遍历:根左右
中序遍历:左根右
后序遍历:左右根
递归的时候终止条件便是当前节点root为空的时候
而中序遍历递归时则先尝试调用左节点 再打印当前根节点 再调用右节点就可
所以代码如下
1 | class Solution(object): |
tips:dict为空时 not dict是True
第二种方法就是用迭代的方法
自己设置栈来模拟递归
当栈为空或者根节点为空则输出结果
先不断向栈中输入左结点 再把此左节点当作当前根节点
如果当前结点为空则说明左面全部入栈 那么从栈中弹出结点并输入到结果再转向当前结点的右节点
1 | class Solution(object): |
查看评论