在做leetcode133题的时候,用到 UndirectedGraphNode, 在 leetcode 显示UndirectedGraphNode is not defined, 在lintcode能通过,有人知道这是怎么回事吗?我复制粘贴了一下discuss里别人用到UndirectedGraphNode也是不行
代码如下:
from collections import deque
class Solution:
def cloneGraph(self, node: 'Node') -> 'Node':
root = node
if node is None:
return None
#get all the node
nodes = self.get_nodes(node)
#mapping
mapping = {}
for node in nodes: #old node
mapping[node] = UndirectedGraphNode(node.label) #this is new
#copy all the neighbors
for node in nodes:
new_node = mapping[node]
for neighbor in node.neighbors:
new_neighbor = mapping[neighbor]
new_node.neighbors.append(new_neighbor)
return mapping[root]
def get_nodes(self,node):
queue = deque([node])
result = set([node])
while queue:
head = queue.popleft()
for neighbor in head.neighbors:
if neighbor in result:
continue
result.add(neighbor)
queue.append(neighbor)
return result
# code idea 来自[url]https://www.jiuzhang.com/solution/clone-graph/#tag-highlight-lang-python[/url]