mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-29 20:26:07 -04:00
Update rotate_list_by_k.py
This commit is contained in:
parent
f6e853a5ab
commit
d8d1887a85
@ -5,21 +5,23 @@
|
|||||||
|
|
||||||
def rotate_list_by_k(head, k):
|
def rotate_list_by_k(head, k):
|
||||||
|
|
||||||
if head is None and head.next is None:
|
if head is None:
|
||||||
return None
|
return head
|
||||||
|
|
||||||
end, new_end, n = head, head, 1
|
# get the size of the list
|
||||||
|
end, n = head, 1
|
||||||
while end.next:
|
while end.next:
|
||||||
end = end.next
|
end = end.next
|
||||||
n += 1
|
n += 1
|
||||||
end.next = head
|
|
||||||
|
|
||||||
for i in range(n - k % n - 1):
|
# rotate
|
||||||
|
end.next = head
|
||||||
|
new_end, i = head, 0
|
||||||
|
while i < n - (k % n) - 1:
|
||||||
new_end = new_end.next
|
new_end = new_end.next
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
# remove cycle
|
||||||
new_head = new_end.next
|
new_head = new_end.next
|
||||||
new_end.next = None
|
|
||||||
|
|
||||||
return new_head
|
return new_head
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user