Copy List with Random Pointer
2015-08-13 13:50
453 查看
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.
Solution:
Return a deep copy of the list.
Solution:
/** * Definition for singly-linked list with a random pointer. * struct RandomListNode { * int label; * RandomListNode *next, *random; * RandomListNode(int x) : label(x), next(NULL), random(NULL) {} * }; */ class Solution { public: RandomListNode *copyRandomList(RandomListNode *head) { RandomListNode *res = new RandomListNode(-1); unordered_map<RandomListNode*, int> umRI; unordered_map<int, RandomListNode*> umIR; RandomListNode *p = head, *q = res; int num = 0; while(p) { RandomListNode* node = new RandomListNode(p->label); q->next = node; q = q->next; umIR[++num] = q; umRI[p] = num; p = p->next; } q->next = NULL; p = head; q = res->next; while(p) { if(!p->random) q->random = NULL; else { num = umRI[p->random]; q->random = umIR[num]; } p = p->next; q = q->next; } return res->next; } };
相关文章推荐
- Uncaught TypeError: Cannot read property 'options' of undefined 错误
- Tomcat启动45秒解决问题
- Linux chmod +755和chmod +777 各是什么意思呢?
- 在Linux上搭建XMPP服务器
- linux chmod命令参数及用法详解--文件文件夹权限
- 图文解说:Nginx+tomcat配置集群负载均衡
- 使用AWS TCO Calculator 比较运维费用
- How To Install Linux, nginx, MySQL, PHP (LEMP) stack on Ubuntu 12.04
- tomcat中使用SSL连接
- 网站前台路径
- Linux RPM包制作教程
- XShell安装和配置(系统为虚拟机中的centos7)
- CentOS7.1配置源
- Window_Open详解
- 服务器配置apache2.4+php5.6+mysql
- hadoop jar运行hbase相关jar包的classpath问题
- nginx重启 服务
- 关于:Centoslinux 远程连接服务器时客户端一直显示:连接已复位,重新连接到(ip)
- CentOS下通过yum安装svn及配置
- 将linux程序或者脚本的后台运行