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...