雙指標
計算鍊錶長度 count,將k設定為 k % count,防止重複旋轉
i指向head;j指向與head距離為k的節點
i j 同時向後遍歷 直到 j 指向尾節點
旋轉
# definition for singly-linked list.
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class
solution
:def
rotateright
(self, head: listnode, k:
int)
-> listnode:
ifnot head or
not head.
next
or k ==0:
return head
# 雙指標
i = head
j = head
# 計算鍊錶長度 防止重複旋轉
count =
1 cur = head
while cur.
next
: count +=
1 cur = cur.
next
k = k % count
while k:
j = j.
next
k -=
1while j.
next
:
i = i.
next
j = j.
next
# 旋轉
j.next
= head
head = i.
next
i.next
=none
return head
61 旋轉鍊錶
給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1 2 3 4 5 null,k 2 輸出 4 5 1 2 3 null 解釋 向右旋轉 1 步 5 1 2 3 4 null 向右旋轉 2 步 4 5 1 2 3 null 示例 2 輸入 0 1 2 ...
61,旋轉鍊錶
給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1 2 3 4 5 null,k 2輸出 4 5 1 2 3 null解釋 向右旋轉 1 步 5 1 2 3 4 null 向右旋轉 2 步 4 5 1 2 3 null示例 2 輸入 0 1 2 nul...
61 旋轉鍊錶
給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1 2 3 4 5 null,k 2 輸出 4 5 1 2 3 null 解釋 向右旋轉 1 步 5 1 2 3 4 null 向右旋轉 2 步 4 5 1 2 3 null 示例 2 輸入 0 1 2 ...