复杂链表的复制
2016-01-24 22:02
183 查看
题目描述
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。/* struct RandomListNode { int label; struct RandomListNode *next, *random; RandomListNode(int x) : label(x), next(NULL), random(NULL) { } }; */ class Solution { public: RandomListNode* Clone(RandomListNode* pHead) { if(pHead == NULL) return NULL; RandomListNode* p = pHead; std::map<int,RandomListNode*> mm; while(p!= NULL) { RandomListNode* ptem = new RandomListNode(p->label); mm[p->label] = ptem; p = p->next; } p = pHead; while(p != NULL) { if(p->next != NULL) mm[p->label]->next = mm[p->next->label]; if(p->random != NULL) mm[p->label]->random = mm[p->random->label]; p = p->next; } return mm[pHead->label]; } };
相关文章推荐
- RabbitMQ消息分发模式----"Hello World"模式
- ffmpeg 直播流截图
- 1030. 完美数列(25)
- 测试用例设计白皮书--判定表驱动分析方法
- hdu 2537 8球胜负
- 性能优化
- IntelliJ IDEA 使用心得与常用快捷键
- openwrt 安装 php sqlite
- mac电脑配置adb环境
- 文章标题
- druid(德鲁伊)数据源的使用和配置 阿里出品
- J2EE环境变量配置
- Eclipse使用Fresco
- bzoj1911 特别行动队 动态规划斜率优化
- 基础训练 完美的代价(贪心算法)
- apue.h 源码
- 如何解决PHP里大量数据循环时内存耗尽的问题
- 一张图告诉你,只会Node.JS还不够!
- 欢迎使用CSDN-markdown编辑器
- CefSharp(三)屏蔽右键菜单