Advertisement
smj007

Untitled

Aug 14th, 2023
1,328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.95 KB | None | 0 0
  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. class Solution:
  10.     def cloneGraph(self, node: 'Node') -> 'Node':
  11.  
  12.         # keep track of cloned nodes
  13.         hashmap = {}
  14.  
  15.         def dfs(node):
  16.             if node in hashmap:
  17.                 return hashmap[node]
  18.  
  19.             cloned_node = Node(node.val)
  20.             hashmap[node] = cloned_node
  21.  
  22.             # creating a new list called neighbors
  23.             # and appending to that list and later saying
  24.             # cloned_node.neighbors = neighbours
  25.             # gave me a memory limit exceeded error
  26.             for neighbour in node.neighbors:
  27.                 cloned_node.neighbors.append(
  28.                     dfs(neighbour)
  29.                 )
  30.  
  31.             hashmap[node] = cloned_node
  32.            
  33.             return cloned_node
  34.  
  35.         return dfs(node) if node else None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement