版权声明:本文为博主原创文章,可以转载,但转载前请联系博主。 https://blog.csdn.net/qq_33528613/article/details/84947039
后序遍历二叉树
递归算法
def postorderTraversal(root):
f = postorderTraversal
return f(root.left) + f(root.right) + [root.val] if root is not None else []
非递归算法
def postorderTraversal(self, root):
stack = [(root, False)]
res = []
while stack != []:
node, seen = stack.pop()
if node is not None:
if seen is False:
stack.extend([(node, True), (node.right, False), (node.left, False)])
else:
res.append(node.val)
return res