删除一个链表中绝对值相等的结点,保留第一个,datan

typedef struct node{
	int data;
	node*  link;
}Node;
 
int abs(int a){
	return a>=0?a:-1*a;
}
 
void del_node(Node* current,Node* prev){
	prev->link=current->link;
	free(current);
}
 
void del_absolute_equal(Node* node,int n){
	int bucket[n];
	for(int i=0;i<n;i++){
		bucket[i]=0;
	}
	Node* prev;
	while(node!=NULL){
		int data=abs(node->data);
		if(data!=NULL){//判断是否是头结点
			if(bucket[data]==0){/判断是否已经有相同绝对值的数
				bucket[data]=1;
			}
			else{//若已有,则删除该节点
				del_node(node,prev);
			}
		}
		prev=node;
	}
	
}