剑指offer第25题(复杂链表的复制)
来源:互联网 发布:网络分流器和交换机 编辑:程序博客网 时间:2024/05/22 14:57
题目:
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
解题思路:第一步根据原始链表的每个结点创建对应的链表
第二步设置创建链表的随机指针。新创建链表的随机指针指向原始链表随机指针的下一个
第三步只需要偶数结点并且将它们用指针链接
代码:
/*public class RandomListNode { int label; RandomListNode next = null; RandomListNode random = null; RandomListNode(int label) { this.label = label; }}*/public class Solution { public RandomListNode Clone(RandomListNode pHead) { if(pHead==null){ return null; } RandomListNode TempNode=pHead; while(TempNode!=null){ RandomListNode node = new RandomListNode(TempNode.label); node.next=TempNode.next; TempNode.next=node; TempNode=node.next; } TempNode=pHead; while(TempNode!=null){ if(TempNode.random!=null){ TempNode.next.random=TempNode.random.next; } TempNode=TempNode.next.next; } RandomListNode head = pHead.next; RandomListNode tmp = head; TempNode = pHead; while(TempNode.next!=null){ tmp=TempNode.next;// TempNode=tmp.next; TempNode.next=tmp.next; TempNode=tmp; } return head; }}
阅读全文
0 0
- 剑指offer第25题(复杂链表的复制)
- 【剑指offer】复杂链表的复制
- 剑指offer--复杂链表的复制
- 《剑指offer》复杂链表的复制
- 剑指offer:复杂链表的复制
- 剑指offer - 复杂链表的复制
- 剑指Offer--复杂链表的复制
- 剑指offer:复杂链表的复制
- 【剑指offer】复杂链表的复制
- 剑指offer-复杂链表的复制
- 剑指offer:复杂链表的复制
- 剑指offer:复杂链表的复制
- [剑指offer]复杂链表的复制
- 【剑指offer】复杂链表的复制
- 剑指offer|复杂链表的复制
- 《剑指offer》复杂链表的复制
- 剑指Offer:复杂链表的复制
- 剑指offer 复杂链表的复制
- JavaBean 在Servlet 和JSP页面传递
- Nginx
- Axure RP 8 注册码(序列号亲测可用)
- Hadoop之Pig从安装到使用
- Delete 语句带有子查询的sql优化
- 剑指offer第25题(复杂链表的复制)
- VTK学习-vtkLight
- 在idea中使用maven的一些总结
- JNI教程(所用的环境为LINUX)
- [Java面试五]Spring总结以及在面试中的一些问题
- ubuntu下CMake编译生成动态库和静态库,以OpenTLD为例。
- Sublime text3 设置快捷键打开指定浏览器预览
- public 等区分
- Git版本库