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;
}
};
京公网安备 11010502036488号