在最后一步拆分链表那里始终想不通问题在哪里,求解惑
/*
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 curNode=pHead;
while(curNode!=null){
RandomListNode cloneNode=new RandomListNode(curNode.label);
cloneNode.next=curNode.next;
curNode.next=cloneNode;
curNode=curNode.next.next;
}
curNode=pHead;
while(curNode!=null){
if(curNode.random!=null){
curNode.next.random=curNode.random.next;
}
curNode=curNode.next.next;
}
/*
这块有问题。。。最后输出为空
*/
curNode=pHead;
RandomListNode pCloneHead=pHead.next;
RandomListNode curClone=curNode.next;
while(curClone.next!=null){
curNode.next=curNode.next.next;
curNode=curClone.next;
curClone.next=curClone.next.next;
curClone=curClone.next;
}
return pCloneHead;
}
}