From d7280726ad42e4461914ab3df616fe3df99171a7 Mon Sep 17 00:00:00 2001 From: marina <138340846+bt3gl-cryptographer@users.noreply.github.com> Date: Thu, 3 Aug 2023 18:53:47 -0700 Subject: [PATCH] Create rotate_list_by_k.py --- linked_lists/rotate_list_by_k.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 linked_lists/rotate_list_by_k.py diff --git a/linked_lists/rotate_list_by_k.py b/linked_lists/rotate_list_by_k.py new file mode 100644 index 0000000..417c9c5 --- /dev/null +++ b/linked_lists/rotate_list_by_k.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# author: bt3gl + + +def rotate_list_by_k(head, k): + + if head is None and head.next is None: + return None + + end, new_end, n = head, head, 1 + + while end.next: + end = end.next + n += 1 + end.next = head + + for i in range(n - k % n - 1): + new_end = new_end.next + + new_head = new_end.next + new_end.next = None + + return new_head +