133. Clone Graph
Given a reference of a node in a connected undirected graph.
Return a deep copy (clone) of the graph.
Note: Watch out where clonedMap is updated. It's right after a node is visited.
Otherwise you will get into infinite recursion.
class Solution:
def cloneGraph(self, node: 'Node') -> 'Node':
def recurse(src):
if src is None:
return None
dst = Node(src.val)
clonedMap[dst.val] = dst
for nei in src.neighbors:
if nei.val in clonedMap:
subTree = clonedMap[nei.val]
else:
subTree = recurse(nei)
dst.neighbors.append(subTree)
return dst
clonedMap = {}
return recurse(node)
Comments
Post a Comment