解题思路:
解法来自题目后面讨论区
DFS
维护一个全局变量map,键为节点的值,值为这个新建的节点
从当前节点出发,如果下一邻节点是map中存在的节点就继续深搜,否则直接将当前节点加入邻节点表,然后继续建立下一个邻节点。
提交代码:
class Solution {
Map<Integer,UndirectedGraphNode>map=new HashMap<>();
public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
if(node==null) return null;
if(map.containsKey(node.label))
return map.get(node.label);
UndirectedGraphNode newNode=new UndirectedGraphNode(node.label);
map.put(node.label, newNode);
for(UndirectedGraphNode nd : node.neighbors) {
newNode.neighbors.add(cloneGraph(nd));
}
return newNode;
}
}
提交代码:

本文介绍了一种使用深度优先搜索(DFS)算法克隆无向图的方法。通过维护一个全局映射,将原图的节点值与新图中对应的节点进行关联,实现了对原图的完全复制。此算法确保了新图的结构与原图一致,同时避免了重复创建节点。
842

被折叠的 条评论
为什么被折叠?



