salve a tutti,

sto cercando di creare un metodo che cancelli un elemento di una lista nella posizione da me indicata.
La lista è composta da metodi e un campo testa di tipo Node; la classe Node è invece composta da un campo cargo di tipo int e un campo next di tipo Node, più svariati metodi compresi setters e getters.

Ho scritto un metodo che serve a cancellare un determinato Node nella posizione n-esima:
codice:
    // cancellazione del nodo in posizione n
    public boolean ErasePosition( int pos )
    {
        boolean trovato = false;
        // scorro gli elementi
        if( testa == null ) // caso lista vuota
        {    trovato = false;
            this.PrintList();
        }
        else
        {    if( pos == 1 ) // caso primo elemento
            {    testa = testa.GetNext();
                trovato = true;
                this.PrintList();
            } else
                if( pos > 1 )
                {    Node previous = testa;
                    Node temp = testa.GetNext();
                    while( temp != null && pos > 2 )
                    {    pos--;
                        previous = temp;
                        temp = temp.GetNext();
                    }
                    previous.SetNext( temp.GetNext() );
                    this.PrintList();
                    trovato = true;
                }
        }return trovato;
    }
sul libro, su questo forum e su internet in generale ho trovato metodi più veloci del mio, ma non riesco ad applicarli al mio caso. Mi spiego meglio: mi sembra di aver scritto praticamente l'essenziale, qualcuno è in grado di spiegarmi se potevo fare un qualcosa di molto più semplice e veloce?
grazie in anticipo