A recursive function solves a problem by calling itself on a smaller piece, until a base case ends the chain. It's natural for trees, nested structures, and divide-and-conquer. Always have a reachable base case or you'll blow the call stack ("Maximum call stack size exceeded").