예제 #1
0
    def clone(self, node: 'GraphNode'):
        if not node:
            return None
        
        if node in self.visited:
            return self.visited[node]

        clone_node = GraphNode(node.val, [])
        self.visited[node] = clone_node

        if node.neighbors:
            clone_node.neighbors = [self.clone(n) for n in node.neighbors]
        
        
        return clone_node