面试题26:复杂链表的复制
2018-03-16 18:40
288 查看
题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。
思想:
java实现public static RandomListNode clone(RandomListNode pHead) {
//复制节点并插入到原节点之后
if(pHead==null) return null;
RandomListNode pNode=pHead;
while(pNode!=null) {
RandomListNode pClone=new RandomListNode(pNode.label);
pClone.next=pNode.next;
pNode.next=pClone;
pNode=pClone.next;
}
//历链表,A1->random = A->random->next;
pNode=pHead;
while(pNode!=null) {
if(pNode.random!=null) {
pNode.next.random=pNode.random.next;
}
pNode=pNode.next.next;
}
//将链表拆分成原链表和复制后的链表
pNode=pHead;
RandomListNode pCloneHead=pNode.next;
RandomListNode pCloneNode=pNode.next;
pNode.next=pCloneNode.next;
pNode=pNode.next;
while(pNode!=null) {
pCloneNode.next=pNode.next;
pCloneNode=pCloneNode.next;
pNode.next=pCloneNode.next;
pNode=pNode.next;
}
return pCloneHead;
}
思想:
java实现public static RandomListNode clone(RandomListNode pHead) {
//复制节点并插入到原节点之后
if(pHead==null) return null;
RandomListNode pNode=pHead;
while(pNode!=null) {
RandomListNode pClone=new RandomListNode(pNode.label);
pClone.next=pNode.next;
pNode.next=pClone;
pNode=pClone.next;
}
//历链表,A1->random = A->random->next;
pNode=pHead;
while(pNode!=null) {
if(pNode.random!=null) {
pNode.next.random=pNode.random.next;
}
pNode=pNode.next.next;
}
//将链表拆分成原链表和复制后的链表
pNode=pHead;
RandomListNode pCloneHead=pNode.next;
RandomListNode pCloneNode=pNode.next;
pNode.next=pCloneNode.next;
pNode=pNode.next;
while(pNode!=null) {
pCloneNode.next=pNode.next;
pCloneNode=pCloneNode.next;
pNode.next=pCloneNode.next;
pNode=pNode.next;
}
return pCloneHead;
}
相关文章推荐
- 【面试题】剑指Offer-26-复杂链表的复制
- 面试题26:复杂链表的复制
- 剑指Offer:面试题26 复杂链表的复制
- 剑指 offer代码解析——面试题26复杂链表的复制
- 剑指offer——面试题26:复杂链表的复制
- 剑指offer——面试题26:复杂链表的复制
- 面试题26 复杂链表的复制
- 剑指offer--面试题26:复杂链表的复制--Java实现
- 剑指offer 面试题26 复杂链表的复制
- 【剑指Offer学习】【面试题26:复杂链表的复制】
- 【剑指offer】4.4分解让复杂问题简单化——面试题26:复杂链表的复制
- 【剑指offer】面试题26:复杂链表的复制
- 剑指offer面试题26:复杂链表的复制Java实现
- 剑指offer之面试题26:复杂链表的复制
- 剑指offer面试题26-复杂链表的复制
- 面试题26:复杂链表的复制
- 剑指offer-面试题26:复杂链表的复制
- 面试题26:复杂链表的复制
- 剑指Offer面试题26复杂链表的复制,面试题27二叉搜索树和双向链表(递归)
- 面试题26 复杂链表的复制