-1

ここで問題です。リンクされたリストの最初のノードを削除しようとしていますが、残念ながら次の使用に制限されています。

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;
}

前もって感謝します。

4

1 に答える 1