Удаление элементов из списка в заданном диапазоне

возникла проблема с удалением узлов из односвязного списка, суть задания в том, что-бы удалить узлы в заданном диапазоне скажем пользователь выбирает 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--;
        }
    }

Ответы (0 шт):