剑指offer:复杂链表复制
2015-07-27 19:25
567 查看
1.p A->B->C->D->E=>A->A‘->B->B'->C->C'->D->D'->E->E'
2.找到A',B',C',D',E'的随机指针指向
3.将复制后的链表A' B' C' D' E'拆出来
2.找到A',B',C',D',E'的随机指针指向
3.将复制后的链表A' B' C' D' E'拆出来
public class Solution { public RandomListNode Clone(RandomListNode pHead) { RandomListNode p=pHead; while(p!=null){ //两个p之间插一个q RandomListNode q=new RandomListNode(pHead.label); q.next=p.next; p.next=q; p=q.next; } RandomListNode qHead=pHead.next,q=null; q=qHead; p=pHead; while(q!=null){ //复制random指针 q.random=p.random.next; q=q.next.next; p=p.next.next; } q=qHead; while(q!=null){ //拆除q链表 q.next=q.next.next; q=q.next; } return qHead; } }
相关文章推荐
- ajax的接受之页面,一定要有echo,html页面的返回函数success才能正常运行
- 7月24日-----JSON解析、Date、Calender、集合框架
- Effective Java笔记-第9章:异常
- jsp页面自动去缓存
- HTML5链接属性及使用
- jquery 实现iframe 自适应高度
- js排序 希尔排序,快速排序
- js发送短信倒计时
- HTML5媒体查询语法
- Extjs 细节 锁定浏览器,只能操作当前窗口
- HTML—看完轻松入门
- AngularJS学习笔记(四)
- 精通CSS+DIV简单小结(三)
- 基于Nodejs的BigPipe实现
- HTML图像
- jquery checkbox勾选/取消勾选的诡异问题
- JavaScript调用客户端Java程序的方法
- CSS选择器的权重与优先规则(转)
- 详细解读JavaScript编程中的Promise使用
- CSS制作水平垂直居中对齐