diff options
Diffstat (limited to 'challenge-068/walt-mankowski/python/ch-2.py')
| -rw-r--r-- | challenge-068/walt-mankowski/python/ch-2.py | 40 |
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) |
