Devo creare una semplice lista. in fondo vi scrivo i metodi:

codice:
public class MiaLista{
	private ListElem first;

	private class ListElem {
	            public int data;
	            public ListElem next;
    }
     public MiaLista(){
		first=null;

	}
        public boolean insert(int s){
		ListElem nuovoElemento=new ListElem();
		nuovoElemento.data=s;

		if(first!=null)
			nuovoElemento.next=first;
		first=nuovoElemento;

		return true;
	}
}
1) Il costruttore MiaLista costruisce un oggetto lista-vuota, inizializzando opportunamente le variabili. Basta creare una lista che punta a null?
2)Il metodo insert inserisce un nuovo elemento sulla testa della lista. Il campo data di tale nuovo elemento contiene il valore passato in input.

Il fatto è che, provando ad utilizzare questi due metodi, ricevo una "NullPointerException"...dove sbaglio?
Grazie