0
노드에 (String from, String to int time) 노드가 있습니다. HashMap을 지정하면 (자), key는 String이며, value는 from의 Node의리스트입니다.그래프에서 DFS를 실행하는 데 문제가 있습니다.
주어진 시작점 (문자열 시작)에서 끝점 (문자열 끝)까지 가능한 모든 경로를 찾기위한 함수를 작성하고 싶습니다. dfs 함수를 작성하려고했지만 결과 세트가 하나만 반환됩니다. 누구든지 도울 수 있니? 노드의 목록
- 모든 값에서 값
- CUR에서와 같은 노드 목록은 : 시작 값으로 시작하고 각 DFS에게
- 단부 변경할 : 방문 대상
을 : 세트가 난 당신이
Set
JavaDoc 보면 버그가 라인visited.remove(visited.size()-1);
에 있음을 의심
private static void dfs(res, list,HashMap<String, List<Node>> graph,String cur, String end, visited){ if(cur.equals(end)) { res.add(new ArrayList<Node>(list)); return; } for(Node n : graph.get(cur)) { if (visited.contains(n.to)) continue; list.add(n); visited.add(n.to); dfs(res, list, graph, n.to, end, visited); list.remove(list.size()-1); visited.remove(visited.size()-1); } }
고마워요. 그것은 내가 찾고있는 것이다! – c2340878