小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【劍指Offer】反轉(zhuǎn)鏈表

 python_lover 2021-04-02

題目描述

輸入一個鏈表,反轉(zhuǎn)鏈表后,輸出新鏈表的表頭。

解法1

可以使用三個輔助指針pHead, last,next
pHead記錄當前節(jié)點,last記錄上一個節(jié)點,next記錄下一個節(jié)點
首先使用next保存當前節(jié)點的下一個節(jié)點,然后將當前節(jié)點的下一個節(jié)點指向last,實現(xiàn)反轉(zhuǎn)
如下圖所示

實現(xiàn)代碼

public ListNode ReverseList(ListNode pHead)
{
    ListNode last = null, next = null;
    while(pHead != null){
        next = pHead.next;
        pHead.next = last;
        last = pHead;
        pHead = next;
    }
    return last;
}

解法2

解法1是將鏈表按照從頭到尾的順序反轉(zhuǎn)的
可以使用遞歸,通過不斷遞歸深入,實現(xiàn)先從鏈表的尾節(jié)點開始反轉(zhuǎn)
然后通過遞歸的回溯實現(xiàn)按照從尾到頭的順序反轉(zhuǎn)每個節(jié)點
如下圖所示

實現(xiàn)代碼

public ListNode ReverseList2(ListNode pHead)
{
    if(pHead == null || pHead.next == null) return pHead;
    ListNode node = ReverseList2(pHead.next);
    pHead.next.next = pHead;
    pHead.next = null;
    return node;
}

更多算法題目的完整描述,AC代碼,以及解題思路可以查看GitHub倉庫Algorithm

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多