206 反轉鍊錶

2021-09-26 06:39:14 字數 868 閱讀 5897

反轉乙個單鏈表。

示例:輸入: 1->2->3->4->5->null

輸出: 5->4->3->2->1->null

迭代就不說了,儲存當前節點的前繼節點迴圈改變指標指向就行。

我自己先寫了個遞迴的,但看了題解的遞迴,一比就比下去了。。

class solution:

def reverselist(self, head: listnode) -> listnode:

def func(node):

if not node:

return

nonlocal head

node_nex=node.next

node.next=head

head=node

func(node_nex)

if not head:

return

x=head.next

head.next=none

func(x)

return head

class solution:

def reverselist(self, head: listnode) -> listnode:

if not head or not head.next:

return head

def func(node):

if not node.next:

return node

p=func(node.next)

node.next.next=node

node.next=none

return p

return func(head)

206 反轉鍊錶

任務描述 思路 遇到問題 修改 迴圈前判斷傳入引數是否為空 迭代時沒有考慮l3.next none的情況 實現 definition for singly linked list.class listnode def init self,x self.val x self.next none cla...

206 反轉鍊錶

題目 反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 思路 首先,我們建立兩個新的空節點 prev 和 newhead 我們原來的第乙個節點的下乙個節點指向prev,然後再讓prev 指向第乙個節點,這樣就完成了第乙個節點的逆置,以此類推就可以翻轉這個鍊...

206 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 我的解法 使用二分法遞迴 設定快慢指標找到中點 分別反轉再連線 class solution public listnode reverselist listnode head else listnode ...