(node)
| 3 | oldToNew = {} |
| 4 | |
| 5 | def dfs(node): |
| 6 | if node in oldToNew: |
| 7 | return oldToNew[node] |
| 8 | |
| 9 | copy = Node(node.val) |
| 10 | oldToNew[node] = copy |
| 11 | for nei in node.neighbors: |
| 12 | copy.neighbors.append(dfs(nei)) |
| 13 | return copy |
| 14 | |
| 15 | return dfs(node) if node else None |