typedef struct node{
int data;
struct node* link;
}NODE;
Typedef NODE* PNODE;
//算法描述
void func(PNODE h,int n){
PNODE p=h,r;
int *q,m;
q=(int *)malloc((n+1)*sizeof(int));
//构建辅助数组
for(int i=0;i<=n;i++){//初始化操作
*(q+i)=0;
}
while(p->link!=NULL){
m=p->link->data?p->link->data:-p->link->data;
if(*(q+m)==0){
*(q+m)=1;
p=p->link;
}
else{
r=p->link;
p->link=r->link;
free(r);
}
}
free(q);
}
3)时间复杂度为O(m),构造一个辅助数组,空间复杂度为O(n)