Java 广度优先搜索以查找路径

Java 广度优先搜索以查找路径,java,search,graph,Java,Search,Graph,我在图中进行广度优先搜索。 这是生成bfs的算法,但我需要将nodeStart和nodeToFund之间的路径存储在传递给该方法的“路径”列表中,但我不知道如何存储。 我做了一些测试,但没人能工作 public void BFS(Node nodeStart, ArrayList<Integer> path, Node nodeToFind) { if (nodeStart.getVal() == nodeToFind.getVal()) {

我在图中进行广度优先搜索。 这是生成bfs的算法,但我需要将nodeStart和nodeToFund之间的路径存储在传递给该方法的“路径”列表中,但我不知道如何存储。 我做了一些测试,但没人能工作

public void BFS(Node nodeStart, ArrayList<Integer> path, Node nodeToFind) {
        if (nodeStart.getVal() == nodeToFind.getVal()) {
            return;
        }
        List<Integer> visited = new ArrayList<>();
        LinkedList<Integer> queue = new LinkedList();
        visited.add(nodeStart.getVal());
        queue.add(nodeStart.getVal());

        while (queue.size() != 0) {
            nodeStart = nodeMap.get(queue.poll());
            List<Integer> list = nodeStart.getAdjacenets();
            for (int j = 0; j < list.size(); j++) {
                if (j + 1 < list.size() && !visited.contains(list.get(j + 1))) {
                    visited.add(list.get(j + 1));
                    queue.add(list.get(j + 1));
                }
            }
        }
    }
public void BFS(节点nodeStart、ArrayList path、节点nodeToFind){
if(nodeStart.getVal()==nodeToFind.getVal()){
返回;
}
访问列表=新建ArrayList();
LinkedList队列=新建LinkedList();
add(nodeStart.getVal());
add(nodeStart.getVal());
while(queue.size()!=0){
nodeStart=nodeMap.get(queue.poll());
List=nodeStart.getAdjacenets();
对于(int j=0;j