To my task, I wrote such a delete function.
void Delete(list *head, list* &tail) { list *T, *P; P = head; T = head->next; while (T->next != tail) { if (T->info == P->info) P->next = T->next; // если элементы одинаковые то убираю 2 одинаковый else P=T; // если разные то двигаюсь дальше T = T->next; } if (tail->info == T->info) // рассматриваю последний и предпоследний { T->next = NULL; // если одинаковые то последний убираю tail = T; } } everything seems to be provided, but there is no desired result at the output (for example, I entered 8 units, then it turns out 2 units, and not one, when in some cases everything works out (for example, I enter 1 2 2 3 3 goes 123). Please indicate the error .