leetcode 反轉鍊錶 python實現

2021-09-26 13:27:33 字數 615 閱讀 5249

題目:給定乙個單鏈表和煉表首節點,要求反轉鍊錶

解題思路:反轉相鄰的兩個節點

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:def

reverselist

(self, head: listnode)

-> listnode:

p =none

while head:

temp = head.

next

#定義第二個節

head.

next

= p # 將首節點的next指向p,第一次執行時指向none,再次執行時指向斷掉的部分節點

p = head #將斷掉的節點(即原來鍊錶中前面的節點)賦給p

head = temp #把頭節點移向下乙個節點,此時,這個節點也是乙個不連續節點

return p

LeetCode 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?思路 雙指標,先用乙個指標算出鍊錶結點個數n,每次快指標從頭往先前移動n 步,慢指標往前移動1步進行交換即可。definition for sin...

LeetCode 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 思路分析 直接一趟掃瞄即可。方法二 遞迴 definition for singly linked list.struct listnode class solution listnode reversea...

反轉鍊錶 LeetCode

遞迴版本稍微複雜一些,其關鍵在於反向工作。假設列表的其餘部分已經被反轉,現在我該如何反轉它前面的部分?假設列表為 n1 nk 1 nk nk 1 nm 若從節點 nk 1 到 nm 已經被反轉,而我們正處於 nk n1 nk 1 nk nk 1 nm 我們希望 nk 1 的下乙個節點指向 nk 所以...