salve, ho un problema con questo codice:
codice:
public void inserimento (NodoPFFS<T> New1, NodoPFFS<T> temp1){
		NodoPFFS<T> vuoto = new NodoPFFS<T>();
		vuoto.setFrat(null);
		temp1.addFigl(New1);
		temp1=temp1.getFigl();
		while(temp1.SiFra()==true)
			temp1=temp1.getFrat();
		temp1.setFrat(New1);
		System.out.println("Elemento"+New1.getEl()+"inserito con successo");
	}
precisamente dentro il while, mi da nullpointer exception,
nn riesco a capire perchè, visto che il metodo siFra dovrebbe funzionare:
codice:
		public boolean SiFra(){
		if(fratello==null)
			return(false);
		else
			return(true);
	}
posto anche tutto il codice delle due classi:
codice:
import java.util.*;
public class NodoPFFS<T> {
	
	private T ele;
	LinkedList<NodoPFFS<T>> figli = new LinkedList<NodoPFFS<T>>();
	private NodoPFFS<T> fratello;
	
	
	public NodoPFFS(){
		ele=null;
	}
	
	public void setEl(T e){
		ele=e;
	}
	
	public T getEl(){
		return ele;
	}
	
	public void setFrat(NodoPFFS<T> fra){
		fratello=fra;		
	}
	
	public void addFigl(NodoPFFS<T> fig){
		figli.addLast(fig);		
	}
	
	public NodoPFFS<T> getFrat(){
		return fratello;
	}
	
	public NodoPFFS<T> getFigl(){
		return figli.getFirst();
	}
	
	public boolean SiFra(NodoPFFS<T> x){
		if(x.getFrat()==null)
			return(false);
		else
			return(true);
	}
}
e AlberoPFFS
codice:
import java.util.*;
public class AlberoPFFS<T> {
	
	public NodoPFFS<T> nodo,radice;
	private int numNodi;
	
	public AlberoPFFS(){
		numNodi=0;
		radice=new NodoPFFS<T>();
	}

	public void insRadice(T x){
		numNodi++;
		radice.setEl(x);
		radice.setFrat(null);
		radice.addFigl(null);
	}
	
	public void inserimento (NodoPFFS<T> New1, NodoPFFS<T> temp1){
		NodoPFFS<T> vuoto = new NodoPFFS<T>();
		vuoto.setFrat(null);
		temp1.addFigl(New1);
		temp1=temp1.getFigl();
		while(temp1.SiFra()==true)
			temp1=temp1.getFrat();
		temp1.setFrat(New1);
		System.out.println("Elemento"+New1.getEl()+"inserito con successo");
	}

	
	public NodoPFFS<T> scorri(NodoPFFS<T> temp1,LinkedList<NodoPFFS<T>> padri1){
		NodoPFFS<T> vuoto = new NodoPFFS<T>();
		if(temp1.getFigl()!=vuoto.getFrat())
			{padri1.addFirst(temp1);
			temp1=temp1.getFigl();
			return(temp1);}
		if(temp1.getFrat()!=vuoto.getFrat())
			{temp1=temp1.getFrat();
			return(temp1);}
		else
			temp1=padri1.getFirst().getFrat();
		return(temp1);
	}
	
	public void insNodo (T x , T pad){
		numNodi++;
		int c=1;
		LinkedList<NodoPFFS<T>> padri= new LinkedList<NodoPFFS<T>>();
		NodoPFFS<T> temp=radice;
		NodoPFFS<T> New= new NodoPFFS<T>();
		New.setEl(x);
		while(c==1){
			if(temp.getEl()==pad){
				inserimento(New,temp);
				c=0;}
			else{
				temp=scorri(temp,padri);
			}	
			
		}
	}

	public void stampa(){
		NodoPFFS<T> vuoto = new NodoPFFS<T>();
		int c=1;
		LinkedList<NodoPFFS<T>> padri= new LinkedList<NodoPFFS<T>>();
		NodoPFFS<T> temp=radice;
		while(c==1){
			while(temp.getFigl()!=vuoto.getFrat()){ 
				padri.addFirst(temp);
				temp=temp.getFigl();
				}
			System.out.println(temp.getEl());
			if(temp.getFrat()!=vuoto.getFrat())
				temp=temp.getFrat();
			else{
				temp=padri.getFirst().getFrat();;
				}
			if (padri.isEmpty())
				c=0;
		}
	}
}
il mio problema è quello di riuscire a capire se l'attributo Fratello della classe NodoPFFS è vuoto o no. Nell'attributo Fratello si salva il puntatore al nodo successico, ma non posso confrontare un puntatore a null. Con cosa lo devo confrontare?
spero che qualcuno mi possa aiutare;
grazie