qual è il tuo puntatore di testa della lista? credo che il tuo codice sia molto confusionario, gestisce male la lista a livello di algoritmo.