Skip to content

Commit 5b4f310

Browse files
committed
Time: 43 ms (60.37%), Space: 16.9 MB (71.17%) - LeetHub
1 parent f656696 commit 5b4f310

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

0133-clone-graph/0133-clone-graph.py

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"""
2+
# Definition for a Node.
3+
class Node:
4+
def __init__(self, val = 0, neighbors = None):
5+
self.val = val
6+
self.neighbors = neighbors if neighbors is not None else []
7+
"""
8+
9+
from typing import Optional
10+
class Solution:
11+
def cloneGraph(self, node: Optional['Node']) -> Optional['Node']:
12+
oldToNew = {}
13+
14+
def dfs(node):
15+
if node in oldToNew:
16+
return oldToNew[node]
17+
18+
copy = Node(node.val)
19+
oldToNew[node] = copy
20+
for nei in node.neighbors:
21+
copy.neighbors.append(dfs(nei))
22+
return copy
23+
24+
return dfs(node) if node else None
25+

0 commit comments

Comments
 (0)