Мой код работает для элементов, которые находятся в начале связанного списка, но не для тех, которые находятся в середине или в конце. Ценю вашу помощь!Удаление элемента из двусвязного списка
void remove(){
if (!head)
printf("\nNo nodes to delete. List is empty.");
else{
int n;
struct node* help = head;
printf("Enter an element to delete: ");
scanf("%d", &n);
if(head->data == n){
help-> next->prev = 0;
head = help -> next;
} else{
while(help -> next){
if(help -> data == n){
help -> next -> prev = help -> prev;
help -> prev -> next = help -> next;
}
else help = help -> next;
}
}
}
}
Почему не существует 'n' в качестве параметра' remove() '? –
@ смысл-вопрос, почему люди всегда выбирают код вместо ответа на поставленный вопрос? Ваш вопрос не имеет никакого отношения к заданной проблеме, и опубликованный код может быть упрощен для публикации в SO - не так, как он был фактически написан для фактического проекта со стороны искателя. – xaxxon
@shail, дающий нам конкретные примеры того, как он провалился, был бы полезен, так как у вашего кода много проблем, и сложно указать их на все, не переписывая свой код для вас (что не должно быть сделано на SO) – xaxxon