【leetcode】133.(Medium)Clone Graph
阿新 • • 發佈:2019-01-08
解題思路:
解法來自題目後面討論區
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;
}
}
提交程式碼: