给定使用HashMap<String, String>
实现的有向图,找出是否连接了两个节点。
例如:
"b"--->"a"<---"c"
Map<String, String> graph = new HashMap<>();
map.put("b", "a");
map.put("c", "a");
"b"
和"c"
已关联。
我找到了一个post,其中图是一个有向图,但解决方法是找出两个节点之间是否有路径。我的问题有所不同,因为即使"b"
和"c"
之间没有路径,上述示例中的"b"
和"c"
也会被视为已连接。
答案 0 :(得分:0)
您的代表与您提供的链接中使用的代表之间没有真正的区别。他们使用了一个LinkedList<Integer>
数组,它映射到所有相邻节点的每个节点。
您还拥有此信息,地图的每个键都链接到所有相邻节点。
但请注意,您的陈述非常有限。您将节点限制为只有一个neighboor。您可以通过将value
类的类型更改为Set<String>
而不是String
来更改此设置。
只需使用您的结构重新实现BFS或DFS,或者将您的版本转换为他们的版本并直接使用他们的代码。但是,第一个解决方案会更快,但需要您了解这些搜索的工作原理。 但是不要害怕,它们很容易,并且有很好的在线文章,例如维基百科: