Salve,

Sto studiando le liste e volevo creare un programma che le gestisse.
Il problema è che mi dice un errore strano, che non riesco a capire.
Vi posto il codice:

File: Liste.java
codice:
class Elemento{
  int val;
  Elemento next;
}

class Lista{
Elemento testa;
  Lista(int n){ 
    testa.val=n;
    testa.next=null; 
  }
  void insDopo(int x){
    Elemento nuovo=new Elemento();
    nuovo.val=x;
    nuovo.next=this.testa;
    this.testa=nuovo;
  }
  int leggi(){
    Elemento tmp;
    int n=0;
    if(testa.next==null) return 1;
    for(tmp=testa;tmp!=null;tmp=tmp.next,n++)
      System.out.println(n+": "+tmp.val);
    return 0;
  }
}

public class Liste{
  public static void main(String args[]){
    int n=5;
    Lista a1=new Lista(n);
    //a1.insDopo(2);
    //a1.leggi();
  }
}
La compilazione non da errori ma quando vado ad eseguire il file:

codice:
mario@ubuntu:~/Documenti/scuola/prog 2/Liste$ java Liste
Exception in thread "main" java.lang.NullPointerException
	at Lista.<init>(Liste.java:15)
	at Liste.main(Liste.java:37)