我做了二叉树后序遍历python的递归过程。这是代码。二叉树后序遍历的迭代过程
from collections import namedtuple
from sys import stdout
Node = namedtuple('Node', 'data, left, right')
tree = Node(1,
Node(2,
Node(4,
Node(7, None, None),
None),
Node(5, None, None)),
Node(3,
Node(6,
Node(8, None, None),
Node(9, None, None)),
None))
def printwithspace(i):
stdout.write("%i " % i)
def postorder(node, visitor = printwithspace):
if node:
print "%d-->L"%node.data
postorder(node.left, visitor)
print "%d-->R"%node.data
postorder(node.right, visitor)
print "Root--%d"%node.data
else:
print "Null"
stdout.write('\n postorder: ')
postorder(tree)
stdout.write('\n')
现在,我想对PYTHON中的二叉树后序遍历做一个迭代过程。有人能帮忙吗?
在此先感谢。
通常我认为人们使用访问堆栈基本上取代母语调用堆栈做反复迭代时。我个人使用节点中的访问标志进行迭代遍历。所以两者都可以工作。 –