剑指offer面试题[26]-复杂链表的复制
来源:互联网 发布:群排名优化 编辑:程序博客网 时间:2024/06/07 12:25
题目描述
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
/*struct RandomListNode { int label; struct RandomListNode *next, *random; RandomListNode(int x) : label(x), next(NULL), random(NULL) { }};*/class Solution {public: RandomListNode* Clone(RandomListNode* pHead) { CloneNodes(pHead); //复制原始链表的任意结点N并创建新结点N',再把N’链接到N的后面。 ConnectRandNodes(pHead); //设置付出出来的结点的random。 return ReconnectNodes(pHead); //把复制得到的长链表拆分为两个链表,把偶数位置的结点用next链接起来就是复制出来的链表。 } void CloneNodes(RandomListNode* pHead) { RandomListNode* pNode=pHead; while(pNode!=NULL) { RandomListNode* pCloneNode=new RandomListNode(pNode->label); //pCloneNode->label=pNode->label; pCloneNode->next=pNode->next; pCloneNode->random=NULL; pNode->next=pCloneNode; pNode=pCloneNode->next; } } void ConnectRandNodes(RandomListNode* pHead) { RandomListNode* pNode=pHead; while(pNode!=NULL) { RandomListNode* pCloneNode=pNode->next; if(pNode->random!=NULL) pCloneNode->random=pNode->random->next; pNode=pCloneNode->next; } } RandomListNode* ReconnectNodes(RandomListNode* pHead) { RandomListNode* pNode=pHead; RandomListNode* pcloneNode=NULL; RandomListNode* pcloneHead=NULL; if(pNode!=NULL) { pcloneNode=pcloneHead=pNode->next; pNode->next=pcloneNode->next; pNode=pNode->next; } while(pNode!=NULL) { pcloneNode->next=pNode->next; pcloneNode=pcloneNode->next; pNode->next=pcloneNode->next; pNode=pNode->next; } return pcloneHead; }};
阅读全文
1 0
- [剑指offer][面试题26]复杂链表的复制
- 剑指offer 面试题26复杂链表的复制
- 【剑指offer】面试题26:复杂链表的复制
- 剑指Offer:面试题26 复杂链表的复制
- 《剑指Offer》面试题26:复杂链表的复制
- 剑指offer面试题26-复杂链表的复制
- 剑指offer-面试题26:复杂链表的复制
- 剑指Offer----面试题26:复杂链表的复制
- 剑指offer 面试题26 复杂链表的复制
- 剑指offer面试题26:复杂链表的复制
- 剑指offer--面试题26:复杂链表的复制
- 剑指Offer---面试题26:复杂链表的复制
- 剑指offer-面试题26-复杂链表的复制
- 剑指offer-面试题26 复杂链表的复制
- 【面试题】剑指Offer-26-复杂链表的复制
- 剑指offer-面试题26-复杂链表的复制
- 剑指offer 面试题26 复杂链表的复制
- 剑指offer面试题26-复杂链表的复制
- 网站外链代码编写
- 集合框架——Set(TreeSet)
- js的三种接口(详细解释)
- AMD规范创建一个模块对象与模块类
- BN
- 剑指offer面试题[26]-复杂链表的复制
- 【HDU-1286】找新朋友
- 暂存
- select用法
- 物流管理需求概要图和脑图
- 51nod 1153 选择子序列 (好题)
- HTML笔记-1
- SAML Web SSO如何用浏览器cookie解决跨站点(跨SP)SSO
- 1006 Sum Problem