Mental Model
Recursion solves problems by breaking them into smaller copies of the same problem, while iteration solves problems by repeating steps in a loop. Each works best depending on the problem's nature and constraints.
Analogy: Recursion is like a set of nested Russian dolls, where each doll contains a smaller one inside, and you open them one by one until the smallest is reached. Iteration is like walking around a circular track repeatedly until you finish the required laps.
Recursion: main() -> call f() -> call f() -> ... -> base case Iteration: start -> loop -> loop -> loop -> end
