Solve problems by solving smaller versions of themselves — the mental model that unlocks trees, DP, and divide-and-conquer.
Five passes over the same idea, each from a different angle. Do them in order, or jump to whichever you need.
Recursion is a function calling itself with a smaller input until a base case is reached. It naturally maps to tree traversals, divide-and-conquer, backtracking, and dynamic programming. Understanding call stacks, base cases, tail recursion, and memoization turns recursive thinking from confusing to powerful.