1.1、题目描述

1.2.1、递归
class Solution:
def __init__(self) -> None:
self.ret = []
def postorderTraversal(self, root: TreeNode) -> List[int]:
if not root:
return []
self.pt(root)
return self.ret
def pt(self, root: TreeNode) -> List[int]:
if root.left:
self.pt(root.left)
if root.right:
self.pt(root.right)
self.ret.append(root.val)
1.2.2、迭代
class Solution:
def __init__(self) -> None:
self.ret = []
def postorderTraversal(self, root: TreeNode) -> List[int]:
if not root:
return []
que = [root]
while que:
node = que.pop()
if node:
self.ret.append(node.val)
if node.left:
que.append(node.left)
if node.right:
que.append(node.right)
return self.ret[::-1]