Create a copy of a linked list in which node contains a second pointer which may point to other nodes in linked list.
Easiest way to solve this problem is to allocate additional memory, where you will store map between pointer to node in a list you are trying to copy and pointer to node in new list.
Better solution for this problem relies on the fact that you can modify pointers in the original list you are copying. This makes algorithm more complicated, however allows to perform a copy in more optimal way(lower big-O complexity).
Idea behind the algorithm: