Skip to content

Commit dbbd78e

Browse files
committed
feat : clone-graph
1 parent e4a79e7 commit dbbd78e

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

clone-graph/ekgns33.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
// Definition for a Node.
3+
class Node {
4+
public int val;
5+
public List<Node> neighbors;
6+
public Node() {
7+
val = 0;
8+
neighbors = new ArrayList<Node>();
9+
}
10+
public Node(int _val) {
11+
val = _val;
12+
neighbors = new ArrayList<Node>();
13+
}
14+
public Node(int _val, ArrayList<Node> _neighbors) {
15+
val = _val;
16+
neighbors = _neighbors;
17+
}
18+
}
19+
*/
20+
21+
class Solution {
22+
public Node cloneGraph(Node node) {
23+
Map<Integer, Node> nodeMap = new HashMap<>();
24+
if(node == null) return null;
25+
boolean[] visited = new boolean[101];
26+
dfsHelper(nodeMap, node, visited);
27+
return nodeMap.get(1);
28+
}
29+
30+
private void dfsHelper(Map<Integer, Node> map, Node node, boolean[] visited) {
31+
if(!map.containsKey(node.val)) {
32+
map.put(node.val, new Node(node.val));
33+
}
34+
visited[node.val] = true;
35+
Node cur = map.get(node.val);
36+
for(Node adjacent : node.neighbors) {
37+
map.putIfAbsent(adjacent.val, new Node(adjacent.val));
38+
cur.neighbors.add(map.get(adjacent.val));
39+
if(!visited[adjacent.val]) dfsHelper(map, adjacent, visited);
40+
}
41+
}
42+
}

0 commit comments

Comments
 (0)