La cosa strana è che se faccio la stessa cosa per l'inserimento (usando i puntatori):

codice:
void lista::push(int x)
{
    l=insert(l,x);
};

/*Inserisce gli elementi in modo disordinato (inserimento in testa)*/

nodo* lista::insert(nodo *p,int x)
{
    nodo *q;
    cout<<"insert:versione con inserimento in testa"<<endl;
    q=new nodo; //alloca un elemento;il suo indirizzo è q;
    q->valore=x;
    q->succ=p;
    p=q;
    return p;
    };
In questo caso me lo modifica, anche se poi vado nel menù stampa, oppure ne aggiungo altri, me li stampa.
Cioè, anche in questo caso dovrebbe dare lo stesso prob. , però è perfetto XD.


Riguardo il codice:
codice:
node* elimina(node* n, int val)
{
    if (val == n->valore)
        return n->next;
    else
        return elimina(n->next, val);
}
Credo che l'unico prob. è se ci siano doppioni.
Cioè in questo caso se trovo il primo valore corrispondente si ferma e mi riporta il puntatore al successivo, ma poi non mi elimina gli altri.


Sto impazzendo davanti questo prog. .