Обратно связанный список рекурсивно
У меня есть узел, определенный в связанном списке как:
typedef struct abc
{
int id;
struct abc *next;
}node;
Я хочу рекурсивно перевернуть связанный список. Я передаю указатель на голову функции. Мое определение функции выглядит так:
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;
}
Как мне поступить? Я реализовал итеративный подход.