我有一個列表:
1-2-3-3-4-5-6-6-2-7-8-6-9-10-9-NULL // Before
我Wnt信號,使其如下:
1-2-3-4-5-6-7-8-9-10空//後
我已經寫了下面的代碼:
刪除鏈接列表中的重複元素
void don(struct node *head)
{
struct node *t,*p,*q;
t=head;
p=t->next;//p is to check each node!
q=t;//q is used to take care of previous node!
while(p!=NULL)
{
if(p->data==t->data)
{
while(p->data==t->data)
{
p=p->next;
}
q->next=p;
q=q->next;
}
else
{
p=p->next;
q=q->next;
}
}
t=t->next;
if(t!=NULL)
don(t);
}
但輸出是:
1-2-3-4-5-6-7-8-6-9-10
請告訴我代碼中出現了什麼問題,請更正它:)。
一件事錯的是你正在泄漏內存。 –
它看起來像你只是檢查相鄰的重複。 – interjay
你只是跳過連續的錯誤 – CarlH