public class Solution {
public RandomListNode Clone(RandomListNode pHead)
{
if(pHead==null) return pHead;
cloneNodes(pHead);
connect(pHead);
RandomListNode p = reConnect(pHead);
return p;
}
public void cloneNodes(RandomListNode pHead){
RandomListNode p1 = pHead;
while(p1!=null){
RandomListNode node = new RandomListNode(p1.label);
node.next = p1.next;
p1.next = node;
p1 = node.next;
}
}
public void connect(RandomListNode pHead){
RandomListNode p1 = pHead;
RandomListNode p2 = p1.next;
while(p1!=null){
if(p1.random!=null) {
p2.random = p1.random.next;
}
p1 = p2.next;
if(p1!=null) p2 = p1.next;
}
}
public RandomListNode reConnect(RandomListNode pHead){
RandomListNode p1 = pHead;
RandomListNode copyOfHead = pHead.next;
RandomListNode p2 = p1.next;
while(p1!=null){
p1.next = p2.next;
p1 = p1.next;
if(p1!=null) p2 = p1.next;
}
return copyOfHead;
}
}
上面是我提交的代码,代码已经在eclipse上调试通过没有问题了,采用的测试样例就是牛客网给的,测试结果如下:
但是牛客网的判题系统说我提交的代码测试结果是空!!!!
我觉得这是没有道理的,当然也有可能是我脑子短路,但是我真看不出来哪里有问题啊 =。= 这里打什么比较多,求指教!