Обратно связанный список рекурсивно

У меня есть узел, определенный в связанном списке как:

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;
}

Как мне поступить? Я реализовал итеративный подход.

Ответы на вопрос(4)

Ваш ответ на вопрос