單鏈表反轉(zhuǎn)

/**
* 節(jié)點(diǎn)定義
**/
static class Node {
        Integer data;
        Node next;

        @Override
        public String toString() {
            return this.data.toString();
        }
 }
/**
* 生成節(jié)點(diǎn)數(shù)據(jù)
**/
static Node readyNode() {
        Node linkNode1 = new Node();
        linkNode1.data = 1;
        Node linkNode2 = new Node();
        linkNode2.data = 2;
        Node linkNode3 = new Node();
        linkNode3.data = 3;
        Node linkNode4 = new Node();
        linkNode4.data = 4;
        Node linkNode5 = new Node();
        linkNode5.data = 5;
        Node linkNode6 = new Node();
        linkNode6.data = 6;
        linkNode1.next = linkNode2;
        linkNode2.next = linkNode3;
        linkNode3.next = linkNode4;
        linkNode4.next = linkNode5;
        linkNode5.next = linkNode6;
        return linkNode1;
    }

/**
* 遞歸方式反轉(zhuǎn)
**/
static Node reverse(Node head) {
        //我們從原鏈表的頭結(jié)點(diǎn)開(kāi)始
        Node cur = head;
        //遞歸到原鏈表的尾節(jié)點(diǎn)結(jié)束。遞歸到了尾節(jié)點(diǎn)的時(shí)候就返回當(dāng)前節(jié)點(diǎn)
        if(cur.next == null){
            return cur;
        }else{
            Node reHead = reverse(cur.next);
            cur.next.next = cur;
            cur.next = null;
            return reHead;
        }

    }

/**
* 循環(huán)方式反轉(zhuǎn)
**/
static Node reverse2(Node pHead) {
        if (pHead == null) {
            return pHead;
        }
        Node prev = null;
        while (pHead != null) {
            //保存next
            Node temp = pHead.next;
            //反轉(zhuǎn)
            pHead.next = prev;
            //移動(dòng)prev
            prev = pHead;
            //移動(dòng)pHead
            pHead = temp;
        }
        return prev;
    }

/**
** 內(nèi)置法
** LinkedList沒(méi)有提供反轉(zhuǎn)鏈表的相關(guān)函數(shù),以下是通過(guò)foreach實(shí)現(xiàn)鏈表反轉(zhuǎn)
**/
static LinkedList reverse(LinkedList linkedList) {
    LinkedList<Object> newLinkedList = new LinkedList<>();
    for (Object object : linkedList) {
        newLinkedList.add(0, object);
    }
    return newLinkedList;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容