Skip to content

Commit a36214c

Browse files
week9 mission - Clone Graph
1 parent 9715128 commit a36214c

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

โ€Žclone-graph/dev-jonghoonpark.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
- ๋ฌธ์ œ: https://leetcode.com/problems/clone-graph/
2+
- ํ’€์ด: https://algorithm.jonghoonpark.com/2024/02/13/leetcode-133
3+
4+
```java
5+
class Solution {
6+
public Node cloneGraph(Node node) {
7+
return cloneGraph(new HashMap<>(), node);
8+
}
9+
10+
private Node cloneGraph(Map<Integer, Node> map, Node node) {
11+
if(node == null) {
12+
return null;
13+
}
14+
15+
if (map.containsKey(node.val)) {
16+
return map.get(node.val);
17+
}
18+
19+
Node copy = new Node(node.val);
20+
map.put(node.val, copy);
21+
22+
for (int i = 0; i < node.neighbors.size(); i++) {
23+
Node neighborNode = node.neighbors.get(i);
24+
copy.neighbors.add(map.getOrDefault(neighborNode.val, cloneGraph(map, node.neighbors.get(i))));
25+
}
26+
27+
return copy;
28+
}
29+
}
30+
```
31+
32+
### TC, SC
33+
34+
node(vertex)์˜ ์ˆ˜๋ฅผ `V`, edge์˜ ์ˆ˜๋ฅผ `E` ๋ผ๊ณ  ํ•˜์˜€์„ ๋•Œ ๊ฐ ๋…ธ๋“œ ๋งˆ๋‹ค edge์˜ ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต์„ ํ•ด์•ผํ•œ๋‹ค.
35+
์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” `O(V + E)` ์ด๋‹ค. ๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” `O(V)`์ด๋‹ค.

0 commit comments

Comments
ย (0)