给定一个二叉树,返回他的后序遍历的序列。
后序遍历是值按照 左节点->右节点->根节点 的顺序的遍历。
数据范围:二叉树的节点数量满足
,二叉树节点的值满足
,树的各节点的值各不相同
样例图
class Solution: def postorderTraversal(self , root: TreeNode) -> List[int]: # write code here cur = root res, stack = [], [] while cur&nbs***bsp;stack: if cur: stack.append(cur) res.append(cur.val) cur = cur.right else: cur = stack.pop() cur = cur.left return res[::-1]
class Solution: def postorderTraversal(self , root: TreeNode) -> List[int]: # write code here if not root: return None stack = [(root, True)] ans = [] while stack: node, flag = stack.pop() if (node.left&nbs***bsp;node.right) and flag: stack.append((node, False)) if node.right: stack.append((node.right, True)) if node.left: stack.append((node.left, True)) else: ans.append(node.val) return ans
class Solution: def postorderTraversal(self , root: TreeNode) -> List[int]: # write code here res = [] def postorder(root): if not root: return if root.left: postorder(root.left) if root.right: postorder(root.right) res.append(root.val) return postorder(root) return res