Skip to content

Commit cd2a435

Browse files
committed
Time: 28 ms (20.26%), Space: 42.8 MB (40.47%) - LeetHub
1 parent ea19cb8 commit cd2a435

File tree

1 file changed

+10
-18
lines changed

1 file changed

+10
-18
lines changed

0133-clone-graph/0133-clone-graph.java

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,17 @@ public Node(int _val, ArrayList<Node> _neighbors) {
1919
*/
2020

2121
class Solution {
22+
public HashMap<Integer, Node> map = new HashMap<>();
2223
public Node cloneGraph(Node node) {
23-
if(node==null) return null;
24-
Node cpy = new Node(node.val);
25-
Node[] vis =new Node[101];
26-
Arrays.fill(vis,null);
27-
dfs(node,cpy,vis);
28-
return cpy;
29-
}
30-
public void dfs(Node node,Node cpy,Node[] vis){
31-
vis[cpy.val] =cpy;
32-
33-
for(Node n :node.neighbors){
34-
if(vis[n.val]==null){
35-
Node newnode =new Node(n.val);
36-
cpy.neighbors.add(newnode);
37-
dfs(n,newnode,vis);
38-
}else{
39-
cpy.neighbors.add(vis[n.val]);
40-
}
24+
if (node == null)
25+
return null;
26+
if (map.containsKey(node.val))
27+
return map.get(node.val);
28+
Node newNode = new Node(node.val, new ArrayList<Node>());
29+
map.put(node.val, newNode);
30+
for (Node neighbor: node.neighbors) {
31+
newNode.neighbors.add(cloneGraph(neighbor));
4132
}
33+
return newNode;
4234
}
4335
}

0 commit comments

Comments
 (0)