我正在尝试使用 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;
}
它没有给我正确的答案!我的执行有什么问题?我的概念错了吗?