將給出的整數x翻轉 翻轉鍊錶型別

2021-10-14 05:26:29 字數 1248 閱讀 6605

給定乙個鍊錶,一次反轉鍊錶k的節點並返回其修改後的列表。

k是乙個正整數,並且小於或等於鏈結列表的長度。如果節點數不是k的倍數,那麼最後剩下的節點應保持原樣。

對於k = 2,您應該返回:2->1->4->3->5

對於k = 3,您應該返回:3->2->1->4->5

反轉從位置m到n的鍊錶。請使用一趟掃瞄完成反轉。

說明:

1 ≤ m ≤ n ≤ 鍊錶長度。

輸入: 1->2->3->4->5->null, m = 2, n = 4

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

思路:找到要反轉的然後一步步反轉,最後再接上

class solution:

def reversebetween(self, head: listnode, m: int, n: int) -> listnode:

x = dummy = listnode(0)

dummy.next = head

for _ in range(m - 1): #找點

x = x.next

current, previous = x.next, none

for _ in range(n - m + 1):

current.next, previous, current = previous, current, current.next#反轉

x.next.next = current #接上

x.next = previous

return dummy.next

反轉乙個單鏈表。

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

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

思路:我記得學資料結構學過乙個頭插法

class solution:

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

if not head or not head.next:

return head

new = none

while head:

new,new.next,head=head,new,head.next

return new

鍊錶的翻轉

如何快速的實現鍊錶的翻轉,比如鍊錶a資料為 str1,str2,str3,str4,str5,str6 翻轉後則變為 str6,str5,str4,str3,str2,str1 針對上述問題我能想到的一種辦法就是以壓棧的方式來實現,其實現思路相對較為簡單,通過定義乙個鍊錶資料結構的資料棧,遍歷鍊錶,...

鍊錶的翻轉

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。struct listnode 方法一 建立節點指標型別堆疊,遍歷鍊錶,將指標壓棧,順次出棧,實現反轉。這個占用記憶體空間較大。listnode reverselist listnode phead 建立鍊錶list list phead if list...

鍊錶翻轉的方法

鍊錶的翻轉是程式設計師面試 現頻度最高的問題之一,常見的解決方法分為遞迴和迭代兩種。最近在複習的時候,發現網上的資料都只告訴了怎麼做,但是根本沒有好好介紹兩種方法的實現過程與原理。所以我覺得有必要好好的整理一篇博文,來幫忙大家一步步理解其中的實現細節。我們知道迭代是從前往後依次處理,直到迴圈到鏈尾 ...