Newer
Older
py-linkedlist / LinkedList.py
@tundra tundra on 24 May 2012 1 KB Initial revision
#!/usr/bin/env python
# Demonstrate creation of a linked list and then its reversal
# Copyright (c) 2005 TundraWare Inc., Des Plaines, IL
# All Rights Reserved
# Last Modified: 2-15-2005

# A linked list element class

class element(object):
    payload = None
    next = None


# Print out the payloads in linked order

def PrintList(head):

    if not head:
        print "Bogus: Null Head Of List Passed!!!"
        return head

    current = head

    while current:
        print current.payload
        current = current.next

    print "    "  # separator

# Reverse the order of the list, returning a new head

def ReverseList(head):

    current  = head
    previous = None
    
    while current.next:

        next = current.next
        current.next = previous
        previous = current
        current = next

    else:
        current.next = previous

    return current


#####
# Main Program Entry point
#####

# Create a linked list

head = element()
head.payload = "OriginalHead"
last = head

for index in range(10):

    new = element()
    new.payload = index
    
    last.next = new
    last = new

PrintList(head)
head = ReverseList(head)
PrintList(head)