Allora, ragazzi, vi rispiego il funzionamento del programma.
Inserite due Liste in ordine crescente, ne viene creata un altra ordinata in DECRESCENTE.
Quindi questo mio pezzo di programma, dovrebbe se sono inserite i seguenti numeri, stampare almeno '1' e '2'.
Numeri da inserire: 1 LISTA = 1 , 2 , 3
Numeri da inserire: 2 LISTA = 4 , 5 , 6
codice:
#include <iostream>
using namespace std;

struct lista
{
    int num;
    lista *punt; 
};


int main()
{
    lista *x,*y,*T1,*T2;
    char ins;
    cout <<"Inserisci gli elementi nelle 2 LISTE in ordine crescente."<<endl;
    cout <<"Verra' creata una contenente i numeri in ordine DECRESCENTE!.\n"<<endl;
    
    //Caricamento 1° LISTA
    lista p;                                     //P TESTA DELLA LISTA 1                              
    cout <<"LISTA 1 - Inserisci il numero = "; 
    cin >> p.num;
    x=&p;                                             
    cout <<"Devi inserire ? (s/n) = ";
    cin >>ins;
    if (ins!='s' || ins!='S')                 // nel caso in cui viene inserito
                              p.punt=NULL;   // solo un nodo
    
    while (ins=='s' || ins=='S')            
    { 
     lista *pp = new lista;
     cout <<"LISTA 1 - Inserisci il numero = ";
     cin >> pp->num;   
     pp->punt = NULL;; 
     x->punt = pp; 
     x = pp;                         //inserimenti in coda alla LISTA
     cout <<"Devi inserire ? (s/n) = ";
     cin >>ins; 
    }
    // FINE caricamento 1° LISTA
    
    //Caricamento 2° LISTA
    lista q;                                       //Q TESTA DELLA LISTA 2                   
    cout <<"LISTA 2 - Inserisci il numero = "; 
    cin >> q.num;
    x=&q;                                        
    cout <<"Devi inserire ? (s/n) = ";
    cin >>ins;
    if (ins!='s' || ins!='S')                 // nel caso in cui viene inserito
                              q.punt=NULL;   // un solo nodo
                              
    while (ins=='s' || ins=='S')            
    { 
     lista *qq = new lista;
     cout <<"LISTA 2 - Inserisci il numero = ";
     cin >> qq->num;   
     qq->punt = NULL; 
     x->punt = qq; 
     x = qq;                                //inserimenti in coda alla LISTA
     cout <<"Devi inserire ? (s/n) = ";
     cin >>ins; 
    }  
    T1=&p;    //Assegno T1 =  'p' (T1 = puntatore a LISTA)
    T2=&q;
    if (T1->num >= T2->num)
                      {
                       lista *coda = new lista;  //crea coda della LISTA
                       coda->num = T2->num;
                       coda->punt = NULL;
                       T2 = T2->punt;       
                       y = coda;
                      }
                      else
                      {
                       lista *coda = new lista;  //crea coda della LISTA
                       coda->num = T1->num;
                       coda->punt = NULL;
                       T1 = T1->punt;
                       y = coda;  
                      }  
   while (T1->punt || T2->punt != NULL) 
   {
     if (T1->num >= T2->num)
                           {
                            lista *t = new lista;
                            t->num = T2->num; 
                            T2=T2->punt;
                            t->punt=y;
                            y=t;          
                           }
                           else
                           {
                            lista *t = new lista; 
                            t->num = T1->num;  
                            T1=T1->punt;  
                            t->punt=y;
                            y=t;
                           }
   }    
   lista *TESTA=y;
	while(TESTA) 
	{
		cout<<TESTA->num<<endl;;
		TESTA=TESTA->punt;
	}                            

	
    system("PAUSE");
}
Vi trovate secondo il mio ragionamento??.
Invece durante l'esecizione mi segnala di fare la segnalazione errori a Windows.