61 旋轉鍊錶

2021-09-22 16:27:43 字數 1125 閱讀 4168

雙指標

計算鍊錶長度 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 ...