← Tree Traversal

Micro-Drill #200 — Postorder traversal

Tree Traversal Target: 15s

Recursive: left → right → root. Iterative trick: do root → right → left (modified preorder) then reverse.

def postorder(root):
    res = []
    def dfs(node):
        if not node: return
        dfs(node.left)
        dfs(node.right)
        res.append(node.val)
    dfs(root)
    return res

# Iterative (reverse of modified preorder):
def postorder_iter(root):
    if not root: return []
    stack, res = [root], []
    while stack:
        node = stack.pop()
        res.append(node.val)
        if node.left: stack.append(node.left)
        if node.right: stack.append(node.right)
    return res[::-1]

Type it from memory. Go.

Practice Problems

Related Coding Drills

← Micro #199 Micro #201 →