复杂链表复制
2019-06-06 16:14
78 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zb_915574747/article/details/91045596
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
代码:
[code]class Solution { public: //链表复制,三步,复制节点,复制随机指针,链表分离 RandomListNode* Clone(RandomListNode* pHead) { if(!pHead) return nullptr; RandomListNode *p; p=pHead; //1 while(p){ RandomListNode *t=new RandomListNode(p->label); t->next=p->next; p->next=t; p=t->next; } p=pHead; //2 while(p){ RandomListNode *t=p->next; if(p->random) t->random=p->random->next; p=t->next; } p=pHead; RandomListNode *clone=p->next; //3 while(p!=nullptr){ RandomListNode *t=p->next; p->next=t->next; t->next=t->next==nullptr?nullptr:t->next->next; p=p->next; } return clone; } };
第三步链表分离,t->next=t->next==nullptr?nullptr:t->next->next;无判断会段错误
相关文章推荐
- 复杂链表的复制
- C++ 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 【数据结构】复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 牛客网剑指offer-复杂链表的复制
- 面试题26 复杂链表的复制
- 复杂链表的复制
- [LeetCode]Copy List with Random Pointer &Clone Graph 复杂链表的复制&图的复制
- 剑指OFFER之复杂链表的复制(九度OJ1524)
- 复杂链表的复制
- 复杂链表的复制问题的分析
- 面试题26:复杂链表的复制
- 经典面试题之复杂链表复制的简单实现
- 程序员面试题精选100题(49)-复杂链表的复制
- 复杂单链表的复制
- 复杂链表的复制练习