capisco, quindi è lo stesso meccanismo della funzione scambia?

sì.
mi sembra di capire quindi che devo usare il riferimento ogni volta che ho da modificare la testa della lista, è giusto?
Se devi modificare il puntatore alla testa della lista sì, altrimenti no.