私はcで二重リンクリストを作成しています。二重リンクされた20ノードのtepm2を持っていて、単語を挿入するノードを削除します。二重リンクリストからノードを削除する方法
各ノードにはユニークな単語があります。
printf("\n Enter word to delete : ");
scanf("%s", &word);
Delete(word);
int delete(char data[200]) //unable to delete
{
if (h == NULL) return;
temp2 = next = previous = h;
while (temp2->next != NULL)
{
if ((strcmp(temp2->word, data) == 0))
{
if (temp2->prev == NULL)
{
h = temp2->next;
free(temp2);
return;
}
else if (temp2->prev == NULL)
{
previous->next = temp2;
free(temp2);
previous->next = NULL;
return;
}
else
{
previous->next = temp2->next;
next->prev = temp2->next;
}
}
temp2 = temp->next;
}
}
私は言葉のユーザーが
なぜ2つの同じ条件でテストしますか? 'temp2-> prev == NULL)'と 'else if(temp2-> prev == NULL)' – yLaguardia
私はこの削除機能をコピーしましたが、論理を理解できません。 –
あなた自身で書く。 –