Deep copying a linked list with random pointers fails if you try to copy nodes sequentially. The random pointer might reference a node you haven't created yet. The fix is the "old-to-new map" pattern.
Do it in passes: first create all clones, then wire their pointers using the map. Amazon's distributed cache and serialization systems need deep copy logic constantly. This problem also tests your pointer manipulation discipline. wrong reference and the entire copy is broken.