Recursion solves problems where the solution depends on solutions to smaller instances of the same problem (see divide and conquer) by using functions that call themselves from within their own code.
It's easy to reverse a single linked list using iteration, however it's kind of difficult to come up with a recursive solution. Furthermore, if only part of a linked list needs reversed, can you nail ...