Se con "valori dispari" intendi il primo, il terzo e il quinto, quando fai questo
codice:
in = in->next->next;
devi tenere conto che c'è un nuovo elemento che hai inserito; quindi il primo next ti porta sullo 0 appena messo, il secondo sull'elemento che era successivo nella lista. Se vuoi fare una volta sì e una no devi avanzare ancora, a patto di non essere in fondo
codice:
if(in->next->next)
    in = in->next->next->next;