我的代碼適用於鏈接列表開始處的元素,但不適用於中間或末尾的元素。感謝你的幫助!從雙向鏈表中刪除一個元素
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