5400.旅行终点
解题
思路
- 将每条路线看成<k,v> 装入Map集合
- 不存在循环的路线,因此只会有一个终点。假定list第一组路线为初始值,做<start,end>,检查map中是否存在key的值为end。若map中存在 更新<start,end> ,继续寻找,否则返回end。
代码
/*
* 2ms
*/
public String destCity(List<List<String>> paths) {
Map<String, String> map = new HashMap<>();
String start = paths.get(0).get(0);
for (List<String> path : paths) {
map.put(path.get(0), path.get(1));
}
String ans = map.get(start);
while (true) {
if (map.containsKey(ans)) {
start = ans;
ans = map.get(start);
} else {
return ans;
}
}
}