61 旋轉鍊錶(中等)(1 5)

2021-09-07 08:20:53 字數 1083 閱讀 3437

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

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class solution:

def rotateright(self, head, k):

""":type head: listnode

:type k: int

:rtype: listnode

"""if not head or k==0:

return head

dummy=listnode(1)

dummy.next=head

p=dummy

length=0

while p.next:

length+=1

p=p.next

p.next=head # 指標指向head(迴圈鍊錶)

step=length-(k%length) # 得到新head的位置

while step:

p=p.next

step-=1

dummy.next=p.next # 變化

p.next=none

return dummy.next

執行用時: 52 ms, 在rotate list的python3提交中擊敗了99.57% 的使用者

leetcode 中等 61 旋轉鍊錶

題目 給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。思路 1 先計算鍊錶長度len,移動k位,即實際移動k len位 2 使鍊錶頭尾相連成環,使new移動到要斷開地方的之前,下乙個就是新的頭 極端情況 return head len 1 tail head whil...

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