LeetCode
Copy List with Random Pointer
Click
here
for an explanation.