unordered_map<RandomListNode*, RandomListNode*> nodeMap; for (auto *cur = pHead; cur != nullptr; cur = cur->next) { nodeMap[cur] = new RandomListNode(cur->label); }
for (auto *cur = pHead; cur != nullptr; cur = cur->next) { nodeMap[cur]->next = nodeMap[cur->next]; nodeMap[cur]->random = nodeMap[cur->random]; } return nodeMap[pHead]; } };