A base case is the stopping condition that returns an answer directly, without another recursive call. It is the point where the problem is small enough to solve outright, like an empty list or zero.
Without one, the function keeps calling itself forever. The problem never shrinks to something answerable, so the recursion has no exit.
That runaway is not harmless. Each call reserves a frame on the call stack for its local state. Endless calls pile up frames until the stack runs out of room, and the program crashes with a stack overflow.
A wrong base case bites the same way. If your condition never quite matches the values you reach, you skip the exit and fall into the same endless descent. Getting the base case exact is the first thing to check.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓