[各种面试题] 复制带随机节点的链表
来源:互联网 发布:淘宝孕妇装 编辑:程序博客网 时间:2024/04/29 09:27
给定一个单链表,链表除了包含next指针外,还包含一个random指针,该指针指向链表中某个结点。
请复制链表到一个新的链表,random指针需要指向新链表中对应的结点。比如原链表某个结点random指针指向第2个结点,那么新结点的random指针也要指向到新链表的第2个结点。
提示:此题存在空间复杂度O(1)的算法,不需要使用任何额外辅助空间。请不要改变原链表的结构。
哎,写代码差死了,根本没希望一次写对。各种遗漏各种笔误各种没想清楚。
/**链表结点的定义(请不要在代码中定义该类型)struct ListNode { ListNode *next; ListNode *random;};*/// 返回复制的新链表头结点ListNode* copyListWithRandomPtr(ListNode *head) {if ( !head ) return head;ListNode* pcur=head;while(pcur){ListNode* newAdd= new ListNode;newAdd->next=pcur->next;pcur->next=newAdd;pcur=newAdd->next;}ListNode* pre=head;while(pre){pcur=pre->next;pcur->random=pre->random->next;pre=pcur->next;}ListNode guard;ListNode* tail=&guard;pre=head;while(pre){tail->next=pre->next;tail=tail->next;pre->next=pre->next->next;pre=pre->next;}return guard.next;}
- [各种面试题] 复制带随机节点的链表
- 面试题26_带随机指针的链表复制
- 复制含有随机节点的链表
- O(1)时间复杂度删除链表节点/复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 复制带随机指针的链表
- 九章算法面试题57 拷贝带随机指针的链表结构
- 复制含有随机指针节点的链表
- 如何复制一个含有随机指针节点的链表
- 复制含有随机指针节点的链表
- 面试题:链表的复制
- 【面试题】复杂链表的复制
- 面试题:复杂链表的复制
- POJ 2115 (C Looooops)
- 字符串匹配算法
- Cocos2d-x 一边执行动作序列一边播放动画
- 给定一个数组,数组中有正负数,求出所有字数组中和值最大的值。
- spring中如何处理oracle大字段
- [各种面试题] 复制带随机节点的链表
- 21. 1~n任意取数组成m
- 《计算机网络》 读书笔记(六) 协议比较
- 寄存器UART
- 教你如何成为数据科学家(九)
- rsh 配置
- 程序员面试宝典(第5章)部分考题
- config 与 makefile
- 子数组的最大乘积