void removeToEnd(LinkList &L)
{
ListNode *q=L->next->next,*p=L->next->next->next,*r=q,*s;
//q指向当前最大值,p指向要判断的结点,r是p的前驱,s是最大值的前驱
while(p)//寻找最大值结点及其前驱
{
if(p->data>q->data)
{
s=r;
q=p;
}
r=p;
p=p->next;
}
if(q!=r)//q==r表示最后一个结点是最大值
{
if(q==L->next)//第一个结点是最大值
L=L->next;
else
s->next=q->next;
r->next=q;
q->next=NULL;
}
}
注:代码有点问题