原題鏈結
1.雙指標反轉
非迭代法的主要思想就是設定兩個指標,指標每向前移動一下就反轉一下
class
solution
:def
reverselist
(self, head: listnode)
-> listnode:
pre=
none
cur=head
while cur:
#當cur==null時迴圈結束
tmp=cur.
next
#儲存cur後的下乙個結點
cur.
next
=pre
pre=cur
cur=tmp
return pre
2.遞迴法
這個遞迴法真的是不太好理解······
這個帶圖的講解比較詳細,這個大佬做的圖是真的好
class
solution
:def
reverselist
(self, head: listnode)
-> listnode:
if(head==
none
or head.
next
==none):
#遞迴結束條件
return head
cur=self.reverselist(head.
next
) head.
next
.next
=head#使head 的下乙個節點指向head
head.
next
=none
return cur
力扣 206反轉鍊錶
package leetcode真題分門別類.鍊錶 author bennyrhys date 2020 05 29 11 42 思路 鍊錶翻轉,直接改變指標指向 儲存狀態需要建立三個指標 pre前 cur當前 next下乙個 複雜度 時間o n 空間o 1 注意while處正好判斷cur是否為空的...
力扣 206 反轉鍊錶
反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 三個指標往後移,當 cur 指標為空時跳出迴圈 1 2 definition for singly linked list.3 public class listnode 7 8 9class soluti...
力扣題解 206th 反轉鍊錶
definition for singly linked list.public class listnode class solution return previous 遞迴遞迴的寫法根據三指標迭代法修改而來,遞迴迴圈的變數是三指標中的next指標 遞迴看起來是正著走過去的與遍歷相同,但遞迴是反...