реверсирование связанного списка

Я пытаюсь перевернуть связанный список с помощью рекурсии и написал для него следующий код. Список является началом списка в начале.

 node *reverse_list_recursive(node *list)
 {
      node *parent = list;
      node *current = list->next;

      if(current == NULL)
       return parent;

      else
       {
           current = reverse_list_recursive(current);
           current->next = parent;
           printf("\n %d  %d \n",current->value,parent->value);
           return parent;
       }

  }

Я видел, что все ссылки меняются местами. Однако, когда я пытаюсь отобразить, я получаю бесконечное количество отпечатков чисел. Я подозреваю, что произошла ошибка, когда я пытаюсь перевернуть ссылку для первого номера в списке.

Что я делаю не так?

7
задан Jonathan Leffler 25 June 2017 в 16:59
поделиться