Leetcode實戰 61 旋轉鍊錶

2021-09-27 03:03:08 字數 1263 閱讀 7162

給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 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->null, k = 4

輸出: 2->0->1->null

解釋:向右旋轉 1 步: 2->0->1->null

向右旋轉 2 步: 1->2->0->null

向右旋轉 3 步: 0->1->2->null

向右旋轉 4 步: 2->0->1->null

class listnode:

def __init__(self, x):

self.val = x

self.next = none

class solution:

def rotateright(self, head, k):

if not head or k == 0:

return head

elif not head.next:

return head

t = head

count1 = 0

while t:

count1 += 1

t = t.next

k = k % count1

def hahaha(head, k):

if k == 0:

return head

else:

temp = head

while temp.next.next:

temp = temp.next

temp2 = listnode(temp.next.val)

temp.next = none

temp2.next = head

return hahaha(temp2, k - 1)

return hahaha(head, k)

遞迴,當k == 1時終止,每次遞迴將鍊錶最後乙個元素提到表頭

並不太高效

leetcode 鍊錶 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 ...

LeetCode 鍊錶(旋轉鍊錶61)

給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。構造乙個環,對鍊錶進行處理。實現原理 先遍歷一遍,得出鍊錶長度,注意k可能大於len,之後令k len,將尾節點next指標指向 首節點,形成乙個環,接著往後跑len k步,從這裡斷開,就是要求的結果了。public l...

leetcode 61 旋轉鍊錶

deciription 給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 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示例 ...