k組倒置鍊錶節點

2021-08-04 16:16:22 字數 1230 閱讀 9710

reverse nodes in k-group

題目原文:

example 1

given this linked list: 1

->

2->

3->

4->

5for k =

2, you should return: 2

->

1->

4->

3->

5for k =

3, you should return: 3

->

2->

1->

4->

5

參照我的博文成對交換鍊錶節點,討巧的辦法是只交換節點內的value,不做節點的移動。

如不使用上述方法,可以使用遞迴完成

# definition for singly-linked list.

class

listnode

(object):

def__init__

(self, x):

self.val = x

self.next = none

class

solution

(object):

defreversekgroup

(self, head, k):

""" :type head: listnode

:type k: int

:rtype: listnode

"""try:

arr =

tmp = head

self.k = k

for i in range(k):

tmp = tmp.next

while

true:

for i in range(k//2):

arr[i].val, arr[-1-i].val = arr[-1-i].val, arr[i].val

arr = list(map(self.move, arr))

finally:

return head

defmove

(self, x):

ret = x

for i in range(self.k):

ret = ret.next

return ret

k 節點鍊錶翻轉

給你乙個鍊錶,每 k 個節點一組進行翻轉,請你返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。示例 給你這個鍊錶 1 2 3 4 5 當 k 2 時,應當返回 2 1 4 3 5 當 k 3 時,應當返回 3 2 1...

鍊錶K個節點翻轉

題目描述 結果分析 題目思路 利用棧的先進後出的性質,1 將需要翻轉的結點壓入棧中 2 將需要翻轉的最後一節結點的後乙個結點儲存下來 3 定義乙個頭結點,將棧中結點,取棧頂結點,鏈結起來 4 當棧中資料全部取出後,將儲存的後乙個結點鏈結起來 返回頭結點即可。實現 listnode rotatelis...

鍊錶的倒置

public static void reorder ref node listhead node lefthead listhead node righthead null node current lefthead.next lefthead.next null while current nu...