python力扣206反轉鍊錶

2021-10-19 03:00:54 字數 900 閱讀 7169

原題鏈結

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指標 遞迴看起來是正著走過去的與遍歷相同,但遞迴是反...