Liste concatenate

Scambia indirizzi di una lista

/*
nodo *radice; nodo *lista =scambiaIndirizzi(radice); scambia indirizzi 
della lista "radice" e crea "lista" con gli indirizzi scambiati

*/
nodo *scambiaIndirizzi(nodo *radice)
{
	
	if(!radice)
	return nullptr;
	
	if (radice->next == NULL)
    return radice;
    
    nodo *temp=radice->next;
	radice->next=scambiaIndirizzi(temp->next);
	temp->next=radice;
	return temp;	
	   		
}

Scambia valori di una lista

void scambiavalori(nodo *&radice)
{
    if(radice)
    {
     if(!radice->next)
     return;
     swap(radice->valore,radice->next->valore);	
     scambiavalori(radice->next->next);
	}
  	   		
}