c++版本如下:
class Solution { public: RandomListNode* Clone(RandomListNode* pHead) { RandomListNode* ans = new RandomListNode(-1),*r = ans; RandomListNode *p = pHead; map<RandomListNode*, RandomListNode*> mp; while(pHead){ mp[pHead] = new RandomListNode(pHead->label); //将所有节点的备份放入哈希表中 pHead = pHead->next; } while(p){ r->next = mp[p]; r->next->random = mp[p->random]; r = r->next; p = p->next; } r->next = nullptr; return ans->next; } };