牛客网刷题之复杂链表的复制
来源:互联网 发布:发型设计软件免费版 编辑:程序博客网 时间:2024/06/07 15:34
题目描述:
解题思路:
过程分为三步:
首先,遍历链表,复制当前结点currentNode对应的结点cloneCurNode,并将cloneCurNode放置在currentNode的后面,这样就形成一条包含原始链以及复制链的长链。
然后,还需将原始链中指针的方向赋予复制链
最后,将长链拆分,就得到原始链和复制链了。
题解:
public RandomListNode Clone(RandomListNode pHead) { if(pHead == null){ return null; } //复制结点 RandomListNode currentNode = pHead; while(currentNode != null){ RandomListNode cloneNode = new RandomListNode(currentNode.label); cloneNode.next = currentNode.next; currentNode.next = cloneNode; currentNode = cloneNode.next; } //复制指针指向 currentNode = pHead; while(currentNode != null){ RandomListNode cloneNode = currentNode.next; if(currentNode.random != null){ cloneNode.random = currentNode.random.next; } currentNode = cloneNode.next; } //拆分长链 currentNode = pHead; RandomListNode cloneHead = pHead.next; RandomListNode tempNode; while(currentNode.next != null){ tempNode = currentNode.next; currentNode.next = tempNode.next; currentNode = tempNode; } return cloneHead; }
ac结果:
0 0
- 牛客网刷题之复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复制复杂的链表
- 复杂链表的复制
- 复杂链表的复制
- 用WinHex软件解析FAT32文件系统
- tomcat在eclipse中启动成功,主页却打不开
- 工作总结
- Windows内存清理工具实现——从现象到本质
- 2016年淘宝购买华硕FL5900UQ7500惨痛经历教训总结
- 牛客网刷题之复杂链表的复制
- 【C语言】”student a am i “和“we are happy”
- ksh getopts function
- 线性代数阶段性总结
- android 跑马灯效果的相关补充
- Zynq动态更新FPGA比特流
- ksh control statement
- 快速排序(C语言)
- ksh array variable