ehm.....
è un po' strano da spiegare...
ma di fatto la concatenazione non c'entra assolutamente nulla con il segmentation fault, solo che non capisco xke si verificava anche quando le facevo...

vediamo se riesco a farvi capire dove stava l'errore

ho questa funzione
codice:
LinkedList * createNode(void * data)
{
    LinkedList * l = (LinkedList *) malloc(sizeof (LinkedList));

    if (l != NULL)
    {
        l->data = data;
    }
    
    return l;
}
che crea un nodo di una lista doppiamente linkata...
next e prev io non li inizializzavo a null, e quindi hanno devi valori casuali...
quando io distruggo la lista, il test di l->right != NULL aveva successo e voleva liberare un'area di memoria proibita...
però questo si verificava (e non so perché) in coincidenza della doppia concatenazione

mettendo

l->next = l->prev = NULL;

alla fine di quella funzione tutto si è risolto