I am trying to reverse a linked list using recursion and wrote the following code for it. The list is start of the list at the beginning.
node *reverse_lis
Severl versions above are not working as OP wanted, so here is my recursive version tested fine:
node * reverseRecursive(node *p,node **head)
{
if(p->next == NULL)
{
*head = p;
return p;
}
node *before;
before = reverseRecursive(p->next,head);
before->next = p;
p->next = NULL;
return p;
}
//call from main
node*head;
//adding value
//assuming now head is now 1->2->3->4->NULL
node* newHead;
reverseRecursive(head,&newHead);
//now now newHead is now 4->3->2->1->NULL