二叉树的后序遍历-非递归版本-四种方法python
文章目录
定义二叉树
class BinNode( ):
def __init__( self, val ):
self.lchild = None
self.rchild = None
self.value = val
方法1:利用两个栈实现
def bin_tree_post_order_traverse1( root):
'''
利用两个栈实现
'''
s1 = []
s2 = []
s1.append( root )
while s1:
node = s1.pop()
s2.append( node )
if node.lchild:
s1.append( node.lchild )
if node.rchild:
s1.append( node.rchild )
while s2:
print(s2.pop().value)
方法2:利用一个栈和两个标志节点实现
def bin_tree_post_order_traverse2