二叉树的前序,中序,后序遍历的非递归实现

下面所有的测试都是基于这颗树来的,如果有什么边界条件没注意到,麻烦告诉我一下,谢谢!

二叉树的前序,中序,后序遍历的非递归实现

1.中序遍历

二叉树的前序,中序,后序遍历的非递归实现

二叉树的前序,中序,后序遍历的非递归实现

讲一下边界条件:除了判断save是否为空外为什么还要加一个判断temp是否为空,因为当你遍历完左子树然后遍历根节点时save已经为空了,但是还有右子树需要遍历。

 

2.前序遍历

二叉树的前序,中序,后序遍历的非递归实现

二叉树的前序,中序,后序遍历的非递归实现

3.后序遍历

二叉树的前序,中序,后序遍历的非递归实现

二叉树的前序,中序,后序遍历的非递归实现