Bloomberg Interview Question

(On Site) Given a single linked list with both a next pointer pointing to the next node, and a "random" pointer pointing to a random node in the single linked list (including itself as an option), perform a deep copy of said linked list.