天天看點

力扣Leetcode 206 | 反轉連結清單(Reverse Linked List)

作者:ame-9

連結:https://leetcode-cn.com/problems/reverse-linked-list/solution/python3di-gui-jie-fa-zhu-yi-xu-xian-kuang-zai-shui/

來源:力扣(LeetCode)

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

在思考遞歸問題的時候,我們要從上到下思考:

子問題是什麼

base case是什麼

在目前層要幹什麼

對翻轉連結清單來說,以1->2->3->4->5為例:

子問題是:除去current node,翻轉剩餘連結清單,即除去1, reverseList(2->3->4->5),遞歸得到的解是 5->4->3->2

base case:目前節點為空,傳回空,目前節點的next為空(隻剩餘一個節點),傳回該節點

在目前層要幹什麼:翻轉連結清單,即把1->2變為2->1.

最後return的是結果連結清單的頭,也就是遞歸解的頭。

逐漸圖解遞歸 疊代

圖解流程 Python3疊代詳解

使用循環能解決,使用遞歸也能夠解決

動畫示範+多種解法