在做leetCode的时候,遇到算法题目二叉树的三种遍历,要求不能使用递归的方式,要使用迭代,弄了好久才知道什么时候才该出栈,什么时候才该入栈,写下这篇博客来记录一下自己的学习
先序遍历
直接出栈,然后判断有无右孩子
中序遍历
直接出栈,然后判断有无右孩子
后序遍历
出栈条件
当确保当前节点无右孩子
或者上一个出栈的节点就是该节点的右孩子
我是算法小白,想学习JAVA版本的算法我推荐看这个,然后根据他的一章节一章节去算对应的算法挺好的
直接出栈,然后判断有无右孩子
直接出栈,然后判断有无右孩子
出栈条件
当确保当前节点无右孩子
或者上一个出栈的节点就是该节点的右孩子
我是算法小白,想学习JAVA版本的算法我推荐看这个,然后根据他的一章节一章节去算对应的算法挺好的