private static void findPath(int from, int to){ LinkedList q = new LinkedList(); HashMap nextNode = new HashMap(); boolean[] visited = new boolean[graph.numVertices()]; visited[from] = true; q.add(new Integer(from)); int current = from; while(!q.isEmpty()){ current = q.remove().intValue(); if (current == to){ break; } VertexIterator it = graph.adjacentVertices(current); while(it.hasNext()){ int next = it.next(); if (!visited[next]){ visited[next] = true; q.add(new Integer(next)); //Allows us to trace back the route taken nextNode.put(new Integer(next), new Integer(current)); } } } //If node was unreachable if (current != to){ return; } String s = ""; for (Integer i = new Integer(to); i != null; i = nextNode.get(i)){ s = s + i + " "; } for (int i = s.length() -1; i >= 0; i--){ path += s.charAt(i); } }