Premetto che Java non lo tocco da una vita.
Mi trovo alle prese con un grafo, dal quale dati due vertici devo restituire tutti i percorsi esistenti tra questi due.
Nessun problema nel trovare i percorsi, il problema lo sto avendo con la restituzione dei percorsi.

I vertici sono oggetti Vertex<String>
Attualmente la funzione mi stampa semplicemente i percorsi trovati in questo modo
codice:
public void bfs(Graph<String,Integer> g, LinkedList<Vertex<String>> visited, Vertex<String> destination) {

	Collection<Vertex<String>> nodes = g.outVertices(visited.getLast()); //nodi raggiungibili da quello dato
	// esamina i vertici adiacenti
	for (Vertex<String> node : nodes) {
		if (visited.contains(node)) {
			continue;
		}
		if (node.equals(destination)) {
			visited.add(node);
			//stampa i vertici contenuti in visited, sono i vertici appartenenti al percorso
			printPath(visited);
			visited.removeLast();
			break;
		}
	}
	//ricorsione per la BFS
	for (Vertex<String> node : nodes) {
		if (visited.contains(node) || node.equals(destination)) {
			continue;
		}
		visited.addLast(node);
		bfs(g, visited, destination);
		visited.removeLast();
	}
}
Al posto dell'istruzione printPath(visited) dovrei inserire la variabile visited in una struttura dati da ritornare in seguito.
Un'idea potrebbe essere l'uso di un array, ma non so a priori quanti percorsi verranno trovati.
Cosa potrei usare per raccogliere tutti i percorsi in una variabile da restituire al metodo chiamante?