用迭代法实现二叉树的前后中序遍历。
递归的实现就是:每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因。
此时大家应该知道我们用栈也可以是实现二叉树的前后中序遍历了。
1. 前序遍历(迭代法)
中左右,先处理中间节点,先将根节点放入栈中,然后将右孩子入栈,再加入左孩子。
2. 中序遍历
3. 后序遍历
再来看后序遍历,先序遍历是中左右,后续遍历是左右中,那么我们只需要调整一下先序遍历的代码顺序,就变成中右左的遍历顺序,然后在反转result数组,输出的结果顺序就是左右中了,如下图:
文章来源:https://www.toymoban.com/news/detail-683349.html
文章来源地址https://www.toymoban.com/news/detail-683349.html
到了这里,关于【Day22-慢就是快】代码随想录-二叉树-迭代遍历的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!