填空题

下列算法将单链表中值重复的结点删除,使所得的结果表中各结点值均不相同,试完成该算法。
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;
}
}

【参考答案】

q->next