打卡题目:leetcode第133题,克隆图





【代码】
"""# Definition for a Node.class Node:def __init__(self, val = 0, neighbors = None):self.val = valself.neighbors = neighbors if neighbors is not None else []"""class Solution:def __init__(self):self.visited = {}def cloneGraph(self, node: 'Node') -> 'Node':if not node:return node# 如果该节点已经被访问了,则直接从哈希表中取出对应的克隆节点返回if node in self.visited:return self.visited[node]# 克隆节点,注意到为了深拷贝我们不会克隆它的邻居列表clone_node = Node(node.val, [])# 哈希表存储self.visited[node] = clone_node# 遍历该节点的邻居并更新克隆节点的邻居列表if node.neighbors:clone_node.neighbors = [self.cloneGraph(n) for n in node.neighbors]return clone_node
