Как следует из вопроса - у меня возникла трудность с удалением именно первого элемента, все прочие удаляются без проблем. Код с моими комментариями вот
здесь с пометкой // ? в месте проблемы. Задачу решал методом "работает - не трогай", поэтому заранее прошу прощения за то, что вы там можете увидеть).
Пробовал способом:
if (curr->val == to_del) {
node* temp = curr;
curr = curr->next;
delete temp;
}
Но, хоть и, на мой взгляд, это выглядит логичным методом, оно не помогает.