# 递归
class Solution:
def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
if not root:
return []
left = self.postorderTraversal(root.left)
right = self.postorderTraversal(root.right)
return left + right + [root.val]
# 递归另外一种写法
class Solution:
def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
def postorder(root: TreeNode):
if not root:
return []
postorder(root.left)
postorder(root.right)
res.append(root.val)
res = []
postorder(root)
return res