From 3dc19c692e316e365ef61ae7074776a1b96bbd8e Mon Sep 17 00:00:00 2001 From: Walt Mankowski Date: Tue, 7 Jul 2020 15:33:53 -0400 Subject: python code for challenge 68 --- challenge-068/walt-mankowski/python/ch-2.py | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 challenge-068/walt-mankowski/python/ch-2.py (limited to 'challenge-068/walt-mankowski/python/ch-2.py') diff --git a/challenge-068/walt-mankowski/python/ch-2.py b/challenge-068/walt-mankowski/python/ch-2.py new file mode 100644 index 0000000000..5f0902ab23 --- /dev/null +++ b/challenge-068/walt-mankowski/python/ch-2.py @@ -0,0 +1,40 @@ +class Node: + def __init__(self, val): + self.val = val + self.next = None + +def make_list(a): + L = Node(a[0]) + cur = L + for val in range(1, len(a)): + node = Node(a[val]) + cur.next = node + cur = node + return L + +def print_list(L): + while L: + print(L.val, end='') + if L.next: + print(' => ', end=''); + L = L.next + print() + +def reorder_list(L): + # save the list in an array + a = [] + while L: + a.append(L) + L = L.next + + # now reorder things + n = len(a)-1 + for i in range(0, int(n/2)): + a[n-i].next = a[i].next + a[i].next = a[n-i] + a[n-i-1].next = None + +L = make_list(range(1,11)) +print_list(L) +reorder_list(L) +print_list(L) -- cgit