Va fuori dall' else perché:

-Se la lista contiene elementi, l' elemento creato viene aggiunto all' elemento che era in coda, e diventa la nuova coda;
-Se la lista non contiene elementi, l' elemento creato diventa la coda, ma anche la testa.

Direi che è corretto il codice che hai scritto.Ma prova sempre a debuggarlo, che è il miglior metodo per capire se funziona.