Provo a spiegarmi meglio:

codice:
public class NodoLF<T> {
	
	private T info;
        private ArrayList<NodoLF> figli; // arraylist eventualmente vuota per i nodi foglia
        private NodoLF padre; // riferimento NULL per il nodo radice
	
	<metodi setter e getter>
}
Se vuoi disegnare un grafo su carta e penna, nel disegno ci saranno tanti nodi, ogni nodo conterrà:

1)Una informazione che può ad esempio essere un numero;
2)Zero o più frecce uscenti che sono dirette verso altri nodi, cioè verso i figli;
3)Una frecce entrante che parte dal nodo padre, eccetto per la radice che non ha padre.

Ebbene la classe NodoLF serve a racchiudere tutte queste informazioni:

1)info è l' informazione contenuta nel nodo;
2)figli è la lista dei figli, cioè l' insieme delle frecce uscenti;
3)padre è il riferimento al padre del nodo.

Quindi per aggiungere un figlio a un nodo semplicemente aggiungi un elemento all' ArrayList figli, per leggere la lista dei figli la scorri, ecc..

Chiaro?