博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode OJ:Copy List with Random Pointer(复制存在随机链接的链表)
阅读量:5949 次
发布时间:2019-06-19

本文共 1204 字,大约阅读时间需要 4 分钟。

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.

这题用map做其实比较简单,但是一开始没想明白越想越乱,最后看了下别人的实现,思路还是很清晰的,代码如下所示:

1 /** 2  * Definition for singly-linked list with a random pointer. 3  * struct RandomListNode { 4  *     int label; 5  *     RandomListNode *next, *random; 6  *     RandomListNode(int x) : label(x), next(NULL), random(NULL) {} 7  * }; 8  */ 9 10 class Solution {11 public:12     RandomListNode *copyRandomList(RandomListNode *head) {13         unordered_map
m;14 RandomListNode helper1(0), * p1 = &helper1, helper2(0), *p2 = &helper2;15 p1->next = head;16 while(p1->next){17 p1 = p1->next;18 RandomListNode * tmpNode = new RandomListNode(p1->label);19 m[p1] = tmpNode;20 p2 = p2->next = tmpNode;21 }22 p1 = &helper1;23 while(p1->next){24 p1 = p1->next;25 if(p1->random){26 m[p1]->random = m[p1->random];27 }28 }29 return helper2.next;30 }31 };

 

转载于:https://www.cnblogs.com/-wang-cheng/p/4993046.html

你可能感兴趣的文章
Raid小知识
查看>>
Linux常用命令总结之(六)whereis
查看>>
Flask 安装入门
查看>>
Linux报“Unknown HZ value! (288) Assume 100”错误
查看>>
多线程2
查看>>
C++ vector容器类型
查看>>
移动网站设计应该避免的“七宗罪”
查看>>
服务器知识详解
查看>>
移位运算陷阱
查看>>
浅谈 Kingshard mysql 中间件
查看>>
TCP/IP详解卷一 学习笔记
查看>>
2003搭建证书服务器
查看>>
mysql连接报错 ERROR 2002 (HY000): Can't connect to local MySQL server through socket
查看>>
我的欧拉工程之路_11
查看>>
js获取URL传参
查看>>
在接受人民币付款后 中国区App Store下载量出现井喷
查看>>
Linux 版lcx
查看>>
java.util.HashMap解读
查看>>
标准滚动条算法
查看>>
字符串练习题
查看>>