Copy List with Random Pointer

来源:互联网 发布:ubuntu鼠标假死 编辑:程序博客网 时间:2024/06/05 16:26

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.

 

 

 

class Solution {public:    RandomListNode *copyRandomList(RandomListNode *head) {        if(head == NULL)return NULL;RandomListNode *p,*newp;p = head;while(p != NULL){newp = new RandomListNode(p->label);newp->next = p->next;p->next = newp;p = p->next->next;}    RandomListNode *h = head->next;newp = h;p = head;while(1){if(p->random)newp->random = p->random->next;p = p->next->next;if(!p)break;newp = newp->next->next;}newp = h;p = head;while(1){p->next = p->next->next;if(newp->next)newp->next = newp->next->next;p = p->next;newp = newp->next;if(!newp)break;}return h;    }};


 

0 0
原创粉丝点击