aboutsummaryrefslogtreecommitdiff
path: root/challenge-068/walt-mankowski/python/ch-2.py
diff options
context:
space:
mode:
authorWalt Mankowski <waltman@pobox.com>2020-07-07 15:33:53 -0400
committerWalt Mankowski <waltman@pobox.com>2020-07-07 15:33:53 -0400
commit3dc19c692e316e365ef61ae7074776a1b96bbd8e (patch)
tree2d3f715932ccc4eec107d3edd3fe4a3ee3e6d098 /challenge-068/walt-mankowski/python/ch-2.py
parenta23cb92fb4c15529c9a1a28b96ca25b7610c6c11 (diff)
downloadperlweeklychallenge-club-3dc19c692e316e365ef61ae7074776a1b96bbd8e.tar.gz
perlweeklychallenge-club-3dc19c692e316e365ef61ae7074776a1b96bbd8e.tar.bz2
perlweeklychallenge-club-3dc19c692e316e365ef61ae7074776a1b96bbd8e.zip
python code for challenge 68
Diffstat (limited to 'challenge-068/walt-mankowski/python/ch-2.py')
-rw-r--r--challenge-068/walt-mankowski/python/ch-2.py40
1 files changed, 40 insertions, 0 deletions
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)