作者: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疊代詳解
使用循環能解決,使用遞歸也能夠解決
動畫示範+多種解法