Почему этот код возвращает false? Ссылка на вопрос - https://practice.geeksforgeeks.org/problems/clone-a-linked-list-with-next-and-random-pointer/1 и не могли бы вы сказать мне, какова пространственная сложность моего кода? поскольку я клонировал его и возвращал этот клон, поэтому он будет рассматриваться как O (n) или O (1)?
Node copyList(Node head) {
//Node temp=head;
//res is the head pointer of cloned LL
Node res=null;
//rest is currently the head pointer of old LL
Node rest=head;
//r will going to be the head pointer of cloned LL
Node r=null;
while(rest!=null){
if(res==null){
Node temp=new Node(rest.data);
res=temp;
r=res;
}
else{
Node temp=new Node(rest.data);
res.next=temp;
res=res.next;
}
//arb is arbitrary pointer
res.arb=rest;
Node h=rest.next;
rest.next=res;
rest=h;
}
rest=r;
while(rest!=null){
if(rest.arb.arb!=null){
//System.out.println(rest.arb.arb.next.data);
rest.arb=rest.arb.arb.next;
}
rest=rest.next;
}
return r;
}
Спасибо