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