Я пытаюсь реализовать свой собственный класс списков, но у меня возникают проблемы при обращении только части моего списка.
Соответствующий код:
void List<T>::reverse(ListNode * & head, ListNode * & tail)
{
ListNode* t;
ListNode* curr = head;
ListNode * funtail = tail;
int stop=0;
while(stop==0)
{
if(curr==funtail)
{
stop = 1;
}
t = curr->prev;
curr->prev = curr->next;
curr->next = t;
curr = curr->prev;
}
t = tail;
tail = head;
head = t;
}
Если я начну со списка
1 2 3 4 5 6 7 8 9 10
и я передаю указатели на 1 и 4, тогда список должен выглядеть следующим образом:
4 3 2 1 5 6 7 8 9 10
Проблема в том, что мой список возвращается как
1
с остальной частью списка потерянным (хорошо, все еще доступный из моей глобальной хвостовой переменной).Есть идеи?Мой метод неверен?