Ti rispondo in termini concettuali senza pensare minimamente al codice come hai chiesto tu.

Tu vuoi realizzare da quel che ho potuto capire, una lista bidirezionale, allora, se vuoi effettuare l'inserimento in testa soltanto, devi ricordarti di inserire due puntatori comunque.

facciamo vari casi:

1.La lista è vuote
Vai ad inserire un elemento nella lista quindi dovrai ricordarti che, essendo il primo, next non punterà a nulla dato che non c'è nulla dopo di lui, ugualmente prew. Questo elemento lo chiameremo L1

2.Inderimento secondo elemento
Nella lista adesso supponiamo ci sia L1, tu adesso vai ad inserire L2. Om questo caso, L2 prima di lui non avrà nessuno, quindi il campo prew non deve puntare a nulla, mentre il campo next deve puntare ad L1.
Ugualmente L1 precedentemente non aveva nessuno prima di lui, adesso ha L2, quindi L1.prew deve indicare L2.

3,Caso iterativo
Un generico elemento L(n+1) avrà il campo next che punta all'elemento L(N) primo nella lista ed L(n) all'inserimento di un nuovo elemento avrà un elemento L(n+1) a cui puntare il campo prew