剑指offer|复杂链表的复制
来源:互联网 发布:跑步轨迹软件 编辑:程序博客网 时间:2024/05/16 17:17
题目描述
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。
思路:
首先遍历一遍链表,复制每一个结点,并把它放在原来结点的后面。然后再遍历一遍链表赋值原始结点的特殊指针。最后遍历一遍链表把原始结点和复制的结点拆分开来。
class Solution {public: RandomListNode* Clone(RandomListNode* pHead) { RandomListNode* pNode=pHead; if(pHead == nullptr) return pNode; while(pNode != nullptr) { RandomListNode *temp=new RandomListNode(pNode->label); //temp->label=pNode->label; temp->next=pNode->next; pNode->next=temp; pNode=temp->next; } pNode=pHead; while(pNode != nullptr) { if(pNode->random) pNode->next->random=pNode->random->next; pNode=pNode->next->next; } RandomListNode* pNewHead=pHead->next; pNode=pNewHead; RandomListNode* pBehind=pHead; while(pNode != nullptr) { pBehind->next=pNode->next; if(pNode->next != nullptr) { pNode->next=pNode->next->next; } pNode=pNode->next; pBehind=pBehind->next; } return pNewHead; }};
0 0
- 【剑指offer】复杂链表的复制
- 剑指offer--复杂链表的复制
- 《剑指offer》复杂链表的复制
- 剑指offer:复杂链表的复制
- 剑指offer - 复杂链表的复制
- 剑指Offer--复杂链表的复制
- 剑指offer:复杂链表的复制
- 【剑指offer】复杂链表的复制
- 剑指offer-复杂链表的复制
- 剑指offer:复杂链表的复制
- 剑指offer:复杂链表的复制
- [剑指offer]复杂链表的复制
- 【剑指offer】复杂链表的复制
- 剑指offer|复杂链表的复制
- 《剑指offer》复杂链表的复制
- 剑指Offer:复杂链表的复制
- 剑指offer 复杂链表的复制
- 剑指offer-复杂链表的复制
- 彗星虚表操作模块1.1-百万数据毫秒级加入超级列表框-增加数据库绑定
- iphone6 电影支持什么格式
- 自定义Theme(1)
- Android camera 竖直拍照 获取竖直方向照片
- [WebKit内核]EasyCKL开源浏览器库 6.1 支持调试运行了
- 剑指offer|复杂链表的复制
- 给无边框窗口增加阴影
- 在线打字练习
- 实习杂记(25):View基类里面的LayoutParams
- HashMap —— 高效随机存取数据结构 ,文本索引必备
- 好开森,不过审核好慢嗷,都提交一星期了。。
- 基于交通路标分类的多列深度神经网络(MCDNN)
- Css转Sass、Css转Less在线工具
- 四则运算分析计算(非常值得学习嗷)