Клонирование LinkedList со следующим и произвольным указателем - PullRequest
0 голосов
/ 17 июня 2020

Почему этот код возвращает 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;        
    }

Спасибо

...