给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。
题目数据保证线路图会形成一条不存在循环的线路,因此只会有一个旅行终点站。
方法一:使用两个Linkedlist保存出发地和目的地
package Algorithm;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
public class destCity {
public String destCity(List<List<String>> paths) {
LinkedList<String> start = new LinkedList<>();
LinkedList<String> end = new LinkedList<>();
for (int i = 0; i < paths.size(); i++) {
start.add(paths.get(i).get(0));
end.add(paths.get(i).get(1));
}
for (String s : end) {
if (!start.contains(s)) return s;
}
return null;
}
}
方法二:使用HashMap
class Solution {
public String destCity(List<List<String>> paths) {
Map<String, String> map = new HashMap<>();
String from = paths.get(0).get(0);
for(List<String> str : paths){
map.put(str.get(0), str.get(1));
}
while(true){
if(!map.containsKey(from)){
return from;
}
else from = map.get(from);
}
}
}