"""
# 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 []
"""
from typing import Optional
class Solution:
def cloneGraph(self, node: Optional['Node']) -> Optional['Node']:
if not node:
return node
else:
nodes = [Node(num) for num in range(101)]
vis = [False] * 101
q = [node]
while q:
cur = q.pop(0)
if not vis[cur.val]:
for neighbor in cur.neighbors:
nodes[cur.val].neighbors.append(nodes[neighbor.val])
q.append(neighbor)
vis[cur.val] = True
return nodes[1]