LeetCode题解之Copy List with Random Pointer
生活随笔
收集整理的這篇文章主要介紹了
LeetCode题解之Copy List with Random Pointer
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、題目描述
2、問題分析
首先要完成一個普通的單鏈表的深度復制,然后將一個舊的單鏈表和新的單鏈表的節點使用map對應起來,最后,做一次遍歷即可。
?
3、代碼
1 RandomListNode *copyRandomList(RandomListNode *head) { 2 if( head == NULL){ 3 return NULL; 4 } 5 RandomListNode* newhead = new RandomListNode(0); 6 RandomListNode* np = newhead; 7 8 RandomListNode* p = head; 9 map<RandomListNode*, RandomListNode*> m; 10 while (p != NULL){ 11 RandomListNode* tmp = new RandomListNode(p->label); 12 m.insert(make_pair(p,tmp)); 13 np->next = tmp; 14 np = np->next; 15 p = p->next; 16 } 17 18 p = head ; 19 np = newhead->next; 20 while( p != NULL){ 21 np->random = m[p->random]; 22 p = p->next; 23 np = np->next; 24 } 25 return newhead->next; 26 27 }?
轉載于:https://www.cnblogs.com/wangxiaoyong/p/9573608.html
總結
以上是生活随笔為你收集整理的LeetCode题解之Copy List with Random Pointer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英语学习第四天
- 下一篇: python 使用jinjia2 生成文