已知带头结点的单链表L非递减有序,下列函数实现将L中重复的元素删除,求循环体的写法

int DelSameX(LinkList L)
{ // 将线性表L中重复的元素删除掉,L非递减有序

Node  *p;  // p指向待处理的链表的第一个结点

Node  *r;  // r指向已处理好的无重复元素链表的最后一个结点

p=L->next;
if ( p==NULL ) return OK;  // 空表返回
r=p;  p=p->next;
while ( p!=NULL )
{



// 写出循环体,且不能再增加新的变量



}
return OK;

}

修改如下,供参考:

int DelSameX(LinkList L) //修改
{ // 将线性表L中重复的元素删除掉,L非递减有序

    Node  *p;  // p指向待处理的链表的第一个结点

    Node  *r;// r指向已处理好的无重复元素链表的最后一个结点
    p=L->next;
               //if ( p==NULL ) return OK;  // 空表返回
               //r=p;  p=p->next;
    while ( p && p->next )
    {   // 写出循环体,且不能再增加新的变量
        if (p->date == p->next->date){
            r = p->next;
            p->next = r->next;
            free(r);
        }
        else
            p = p->next;
    }
    return OK;
}