0
我試圖找到尋找朋友的最短路徑。如果人員X想要連接到人員Y,我想打印出最短路徑的朋友,以便X到達Y.每次運行代碼時,我都會得到空值。使用HashMaps和ArrayList的最短路徑(使用BFS)
公共無效最短(字符串第一,目標字符串){
HashMap<String, String> prev = new HashMap<String, String>();
Queue<PersonNode> q = new LinkedList<PersonNode>();
PersonNode firstPerson = hash.get(first);
firstPerson.visited = true;
prev.put(first, first + " ");
q.add(firstPerson);
while(!q.isEmpty()){
PersonNode curr = q.remove();
if(!curr.visited){
curr.visited = true;
if(curr.equals(target)){
break;
}
else{
for(int i =0; i < curr.list.size(); i++){
if(curr.list.get(i).visited = false){
q.add(curr.list.get(i));
curr.list.get(i).visited = true;
prev.put(curr.list.get(i).name, prev.get(curr.list.get(i).name) + curr.list.get(i));
}
}
}
if(!curr.equals(target)){
System.out.println("They have no connections");
}
}
}
System.out.println(prev.get(target));
}