Heap support dynamic allocation but not recursion
because recursion need stack structure
now one thing more
If you are willing to convert your recursion to iteration, then it is possible to use only heap space, but that isn't really recursion. You would do so by implementing a stack in the heap.