← Tree Traversal

Micro-Drill #210 — Path sum II (collect all paths)

Tree Traversal Target: 15s

Backtracking on tree: append node, recurse, pop. Collect path copy at valid leaves. Classic tree + backtrack combo.

def pathSum(root, targetSum):
    res = []
    def dfs(node, remaining, path):
        if not node: return
        path.append(node.val)
        if not node.left and not node.right and remaining == node.val:
            res.append(path[:])  # copy!
        dfs(node.left, remaining - node.val, path)
        dfs(node.right, remaining - node.val, path)
        path.pop()  # backtrack
    dfs(root, targetSum, [])
    return res

Type it from memory. Go.

Practice Problems

Related Coding Drills

← Micro #209 Micro #211 →