Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- # Definition for a Node.
- class Node:
- def __init__(self, val = 0, neighbors = None):
- self.val = val
- self.neighbors = neighbors if neighbors is not None else []
- """
- class Solution:
- def cloneGraph(self, node: 'Node') -> 'Node':
- # keep track of cloned nodes
- hashmap = {}
- def dfs(node):
- if node in hashmap:
- return hashmap[node]
- cloned_node = Node(node.val)
- hashmap[node] = cloned_node
- # creating a new list called neighbors
- # and appending to that list and later saying
- # cloned_node.neighbors = neighbours
- # gave me a memory limit exceeded error
- for neighbour in node.neighbors:
- cloned_node.neighbors.append(
- dfs(neighbour)
- )
- hashmap[node] = cloned_node
- return cloned_node
- return dfs(node) if node else None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement