(original)
| 16 | visited = {} |
| 17 | |
| 18 | def dfs(original): |
| 19 | if original in visited: |
| 20 | return visited[original] |
| 21 | |
| 22 | clone = Node(original.val) |
| 23 | visited[original] = clone |
| 24 | |
| 25 | for neighbor in original.neighbors: |
| 26 | clone.neighbors.append(dfs(neighbor)) |
| 27 | |
| 28 | return clone |
| 29 | |
| 30 | return dfs(node) |