1 /* 2 // Definition for a Node. 3 class Node { 4 public: 5 int val; 6 Node* next; 7 Node* random; 8 9 Node(int _val) { 10 val = _val; 11 next = NULL; 12 random = NULL; 13 } 14 }; 15 */ 16 class Solution { 17 public: 18 Node* copyRandomList(Node* head) { 19 unordered_map<Node *, Node *> mp; 20 Node *p = head; 21 while(p != NULL) { 22 mp[p] = new Node(p->val); 23 p = p->next; 24 } 25 26 p = head; 27 while(p != NULL) { 28 mp[p]->next = mp[p->next]; 29 mp[p]->random = mp[p->random]; 30 p = p->next; 31 } 32 33 return mp[head]; 34 35 } 36 };
原文:https://www.cnblogs.com/FengZeng666/p/13911863.html