Reverse Linked List Recursively
Tengo un nodo definido en la lista vinculada como:
typedef struct abc
{
int id;
struct abc *next;
}node;
Quiero invertir una lista vinculada de forma recursiva. Estoy pasando el puntero de la cabeza a la función. La definición de mi función se ve así:
node *reverseLinkedListRecursively(node *head)
{
node *current;
node *rest;
if(head == NULL)
return head;
current=head;
rest=head->next;
if(rest == NULL)
{
return rest;
}
reverseLinkedListRecursively(rest);
current->next->next=rest;
current->next=NULL;
return rest;
}
¿Cómo debo proceder? He implementado el enfoque iterativo.