Hej, potrzebuje funkcji która usuwa elementy z 1 listy znajdujące sie w 2.
Napisałem takie coś ale jednak jest gdzieś problem bo nie działa :(
Jest to lista cykliczna
void del(node *L)
{
if (*L == NULL)
return;
if ((*L)->next == *L)
{
free(*L);
*L = NULL;
}
else
{
node pierw = *L;
node ost = *L;
while (ost->next != pierw) {
ost = ost->next;
}
ost->next = pierw->next;
*L = pierw->next;
free(pierw);
}
node pierw = NULL;
node ost = NULL;
}
void usunPowt(node *L1, node *L2)
{
node hL1 = *L1;
node hL2 = *L2;
do
{
do
{
if((*L1)->data == (*L2)->data)
{
del(L1);
}
L2 = &((*L2)->next);
}while((*L2)->next != hL2);
L1 = &((*L1)->next);
}while((*L1)->next != hL1);
}