Удаление элементов из списка в заданном диапазоне
возникла проблема с удалением узлов из односвязного списка, суть задания в том, что-бы удалить узлы в заданном диапазоне скажем пользователь выбирает 2 и 5(и программа удаляет узлы со 2 по 5), третий день так и не смог понять в чем проблема(думаю ошибка задаче прохода цикла). Вот код:
int deletenumfrom;
int deletenumto;
link5:
cout << "Введите начало диапазона: " << endl;
cin >> deletenumfrom;
if (deletenumfrom > size || deletenumfrom < 1)
{
goto link5;
cout << "Вы ввели неверное число. Введите число еще раз: " << endl;
}
link6:
cout << "Введите конец диапазона: " << endl;
cin >> deletenumto;
if (deletenumto > size || deletenumto < deletenumfrom)
{
goto link6;
cout << "Вы ввели неверное число. Введите число еще раз: " << endl;
}
deletenumfrom--;
deletenumto--;
for (int i = deletenumfrom; i < deletenumto; i++)
{
if (i == 0)
{
pop_front();
}
else
{
Node* previous = this->head;
for (int i = 0; i < deletenumto-1; i++)
{
previous = previous->next;
}
Node* toDelete = previous->next;
previous->next = toDelete->next;
delete toDelete;
size--;
}
}