Я написал функцию, которая должна перевернуть список.
Пока что я могу поменять только два предмета, но не более. Я проверил и дважды проверил и до сих пор не могу найти проблему. Я даже использовал отладчик, чтобы увидеть значение каждого указателя. При запуске отладчика я получил сообщение:
Нарушение прав доступа (ошибка сегментации) в вашей программе.
Это мое первое задание со связанными списками, поэтому я все еще учусь.
Вот код, который я написал в Dev-C ++:
List::ListNode *List::Reverse_List(ListNode *head)
{
ListNode *cur = head;
ListNode *forward = NULL;
ListNode *previous = NULL;
while (cur != NULL)
{
head = cur; //set the head to last node
forward = head->next; //save the next pointer in forward
cur->next = previous; //change next to previous
previous = cur;
cur = forward;
cout << "cur= " << cur->item << endl; //this is just to display the current value of cur
return head;
}
}