recursively reverse a linked list