Я пытаюсь удалить узел в двусвязном списке, но проблема в том, что когда у меня есть список: 7-6-5-4-3-2-1, и попробуйте удалить 3, я получаю 7-6-5-4-3, я не могу понять ошибку. Пожалуйста помоги!Дублированный список: удалить узел
void RemoveItem(int itm)
{
if (Head->item == itm) {
Head = Head -> Next;
cout<<"\nItem is at 1st node & removed\n";flag=1;
}
else if (Head->Next == NULL) {
cout<<" \n This is 1-node list & item not in it\n";
}
else {
node *current, *del = Head;
while(del->Next != NULL && del->item != itm) {
del = del->Next;
}
current = del;
current->Next = del->Next;
del->Next->previous = current;
delete(del);
del->Next = NULL;
flag = 1;
}
}
Это не сработало, так же, как и раньше. :/ –
@AliZahr Избавьтесь от всего остального, включая установку тока для удаления и просто используйте эту логику –
Я сделал, но теперь я попадаю в бесконечный цикл:/ Вот код: while (del-> Next! = NULL && del-> item! = itm) { del = del-> Next; } del-> Next-> previous = del-> previous; del-> previous-> Next = del-> Next; удалить (del); –