ここで問題です。リンクされたリストの最初のノードを削除しようとしていますが、残念ながら次の使用に制限されています。
int delete(node* head, int i)
したがって、他のスレッドが推奨する方法とは異なり、ノードを返すことも、パラメーターで **node を使用することもできません。削除の前後にセットを出力すると、最初のノードの代わりに 0 が出力されます。
//before
12, 1, 14,
//after
0, 1, 14,
関数は任意のノードを削除するように設計されていますが、ヘッダーの値が i に等しい部分に行き詰まっています。delete
以下は、最初のノードを処理する関数のコード スニペットです。
int delete(node * head, int i) {
node * current;
current=head;
while (current){
if((current=head) && (head->value=i)){
head=current->next;
free(current);
current=NULL;
break;
}
...
}
return 0;
}
前もって感謝します。