码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode题解之Copy List with Random Pointer

时间:2018-09-02 14:37:56      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:代码   .com   nbsp   pair   一个   random   使用   inter   复制   

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     }

 

LeetCode题解之Copy List with Random Pointer

标签:代码   .com   nbsp   pair   一个   random   使用   inter   复制   

原文地址:https://www.cnblogs.com/wangxiaoyong/p/9573608.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!