並べ替えられたリンク リストから重複を削除する C プログラムを試みています。開始ノードからリストをトラバースするという単純な概念を使用しています。走査中に、各ノードを次のノードと比較します。次のノードのデータが現在のノードと同じ場合、次のノードを削除します。
私のコードは次のとおりです。
struct node *remove_dup(struct node *start)
{
struct node *p,*tmp;
p=start;
while(p!=NULL)
{
if(p->info==p->link->info)
{
tmp=p->link;
p->link=p->link->link;
free(tmp);
}
p=p->link;
}
return start;
}
それは私に正しい答えを与えていません!私の実行の何が問題になっていますか? 私のコンセプトは間違っていますか?