Clone Graph LeetCode solution in Python

1
    def cloneGraph(self, node: 'Node') -> 'Node':
2

3
if node == None:
4
return None
5

6
new_node = Node(node.val, [])
7

8
visited = set()
9

10
q = [[node, new_node]]
11
visited.add(node.val)
12

13
adj_map = {}
14

15
adj_map[node] = new_node
16

17
while len(q) != 0:
18

19
curr = q.pop(0)
20

21

22
for n in curr[0].neighbors:
23

24
# if n.val not in visited:
25
if n not in adj_map and n is not None:
26
new = Node(n.val, [])
27
curr[1].neighbors.append(new)
28
adj_map[n] = new
29
else:
30
curr[1].neighbors.append(adj_map[n])
31

32
if n.val not in visited:
33
q.append([n, adj_map[n]])
34
visited.add(n.val)
35

36

37
return new_node
38

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0