我试试这个:
void
remove_duplicate(List l, int p, int r){
if(p<r){
int q =(r+p)/2;
remove_duplicate(l,p,q);
remove_duplicate(l,q+1,r);
merge_(l,p,q,r);
}
}
void
merge_(List lst, int p, int q, int r){
int i = p;
int j=q+1;
int l = r;
link lp = retNode(lst,p);
link lq = retNode(lst,q+1);
while(i<=q){
j=q+1;
while(j<=l){
if(lp->item==lq->item){remNode(lst,j);j--;l--;}
j++;lq=lq->next;}
i++;lp = lp->next;}
}
但是当我删除一个元素然后不起作用时,“子列表”的大小会变小,有什么想法吗?