22.复杂链表的复制
2016-05-06 20:35
330 查看
复杂链表的复制
参与人数:2434时间限制:1秒空间限制:32768K
本题知识点: 链表
算法知识视频讲解
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。
最后一个while循环看了很久。
参与人数:2434时间限制:1秒空间限制:32768K
本题知识点: 链表
算法知识视频讲解
题目描述
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。最后一个while循环看了很久。
/* 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) return NULL; RandomListNode* pNode1 = pHead; while (pNode1 != NULL) { RandomListNode* tmp = new RandomListNode(pNode1->label); tmp->next = pNode1->next; pNode1->next = tmp; pNode1 = tmp->next; } RandomListNode* pNode2 = pHead; while (pNode2 != NULL) { if (pNode2->random != NULL) { pNode2->next->random = pNode2->random->next; } pNode2 = pNode2->next->next; } RandomListNode *pCloneHead = pHead->next; RandomListNode *currNode = pHead; while(currNode->next){ RandomListNode *tmp = currNode->next; currNode->next =tmp->next; currNode = tmp; } return pCloneHead; } };
相关文章推荐
- 结构体字节对齐
- Hadoop安装及开发
- mock私有变量的时候出现的问题
- POJ3177 Redundant Paths
- C经典 结构图的三种定义方式
- cocos-js,时间相关的处理
- Hadoop HDFS Tools
- 手工MAVEN建立WEBAPP项目并打包部署
- lightoj 1074 spfa判断负环
- 日记帐导入-来源为“采购”日记帐导入失败问题
- 文件传输基础—Java IO流 FileInputStream 的运用
- deep learning 练习1 线性回归练习
- 虚拟化_KVM
- 代理模式:控制对对象的访问
- 前端-js-this
- CentOS允许/禁止ping的方法
- IE7-span折行问题
- HDU 3639 Hawk-and-Chicken tarjan缩点+dfs
- Android去除题栏
- C++实验5——数组分离