簡體   English   中英

代碼以反轉Java中鏈表中的備用節點

[英]code to reverse alternate nodes in a linkedlist in java

鏈表類-

class MyList{
        int val;
        MyList next;
        MyList(int val){
            this.val = val;
        }

        @Override
        public String toString() {
            MyList current = this;
            String out="";
            while(current != null){
                out += current.val+"-->";
                current = current.next;
            }


            return out+"TAIL";
        }
    }

我試過了,它的工作原理是

MyList list3 = list;
    MyList list4 = list.next;
    while(list3!=null && list4!=null){  
        alternateListswap(list3,list4);
        if(list3.next.next==null || list4.next.next==null)
            break;
        list3 = (list3.next.next==null)?null:list3.next.next;
        list4 = (list4.next.next==null)?null:list4.next.next;
    }


private static MyList alternateListswap(MyList L3, MyList L4) {
        int temp = L4.val;
        L4.val = L3.val;
        L3.val = temp;
        return L3;

    }

我的輸入-

MyList list = new MyList(1);
        list.next = new MyList(2);
        list.next.next = new MyList(3);
        list.next.next.next = new MyList(4);
        list.next.next.next.next = new MyList(5);
        list.next.next.next.next.next = new MyList(6);
        list.next.next.next.next.next.next = new MyList(7);
        list.next.next.next.next.next.next.next = new MyList(8);
        list.next.next.next.next.next.next.next.next = new MyList(9);
        list.next.next.next.next.next.next.next.next.next = new MyList(10);

我的列表輸出是-1-> 2-> 3-> 4-> 5-> 6-> 7-> 8-> 9-> 10-> TAIL

現在,我想交換JAVA中LinkedList中的備用節點。

預期輸出-2-> 1-> 4-> 3-> 6-> 5-> 8-> 7-> 10-> 9-> TAIL

您需要交換兩個元素(如果列表中至少有兩個),然后繼續進行下一個對。

您目前的方法是這樣做的:1)轉到列表的最末端(通過front-recursion),然后2)朝列表的最前面交換元素(沿着遞歸調用鏈)。 這樣的結果是反轉列表

您需要這樣的操作:1)如果列表中至少有兩個元素( LL.next有效)交換兩個元素,則2)進一步處理兩個元素並重復(例如, alternateListswap(L.next.next);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM