标签:
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.
Return a deep copy of the list.
Subscribe to see which companies asked this question
RandomListNode *copyRandomList(RandomListNode *head) { if (head == nullptr) return nullptr; RandomListNode *iter = head; while (iter != nullptr) { RandomListNode *newNode = new RandomListNode(iter->label); newNode->next = iter->next; iter->next = newNode; iter = newNode->next; } iter = head; RandomListNode *iter1; while (iter != nullptr) { iter1 = iter->next; if(iter->random != nullptr) iter1->random = iter->random->next; iter = iter1->next; } RandomListNode *ret; ret = head->next; iter1 = ret; head->next = ret->next; iter = head->next; while (iter != nullptr) { iter1->next = iter->next; iter1 = iter1->next; iter->next = iter1->next; iter = iter->next; } return ret; }
Copy List with Random Pointer leetcode
标签:
原文地址:http://www.cnblogs.com/sdlwlxf/p/5134463.html