There are multiple resources available. In my own opinion, I felt that the following was written very well and helped me understand the concept even better: Thinking Recursively with Java by Eric S. Roberts (http://www-cs-faculty.stanford.edu/~eroberts/books/ThinkingRecursively/
The text features the following:
A thorough and clear introduction to the difficult concept of recursion
Uses a broad range of examples to illustrate the principles used in recursion and how to apply them to programming
Features imaginative examples along with various exercises and their solutions.