填空題
下列算法將單鏈表中值重復的結點刪除,使所得的結果表中各結點值均不相同,試完成該算法。
void DelSameNode(LinkList L)
//L是帶頭結點的單鏈表,刪除其中的值重復的結點//
{ListNode * p,*q,*r;
p=L->next; //p初始指向開始結點//
while(p){ //處理當前結點p//
q=p;
r=q->next;
do { //刪除與結點*p的值相同的結點//
while(r&&r->data!=p->data){
q=r;
r=r->next;
}
if(r){ //結點*r的值與*p的值相同,刪除*r//
q->next=r->next;
free(r);
r=();
}
}while( r );
p=p->next;
}
}