io il secondo while proprio non l'ho capito O_o
io farei una cosa tipo:
codice:int i = hash(x,ht); int_list*p = ht -> h_table[i]; int_list*q = ht -> h_table[i]; if(p==NULL) return; if(p->info == x){ ht->h_table[i] = p->next; free(p); return; } p=p->next; for(p; p==NULL; p = p->next){ if(p->info == x){ q->next = p->next; free(p); break; } q=q->next; }