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