llist.sort()should cause the sorted list to be printed out. The code for the LinkedList class is as follows:
print(llist)
class Node:
def __init__(self, value):
self._value = value
self._next = None
# getter for the _value attribute
def value(self):
return self._value
# getter for the _next attribute
def next(self):
return self._next
def __str__(self):
return str(self._value) + "; "
class LinkedList:
def __init__(self):
self._head = None
# add a node to the head of the list
def add(self, node):
node._next = self._head
self._head = node
# remove a node from the head of the list and return the node
def remove(self):
assert self._head != None
_node = self._head
self._head = _node._next
_node._next = None
return _node
# insert node2 after node1
def insert(self, node1, node2):
assert node1 != None
node2._next = node1._next
node1._next = node2
def __str__(self):
string = 'List[ '
curr_node = self._head
while curr_node != None:
string += str(curr_node)
curr_node = curr_node.next()
string += ']'
return string
Code:
ll = LinkedList()Result: (this is the string returned by the __str__() method for the LinkedList class)
ll.add(Node(1))
ll.add(Node(3))
ll.add(Node(2))
ll.sort()
print(ll)
List[ 3; 2; 1; ]
Code:
ll = LinkedList()Result:
ll.sort()
print(ll)
List[ ]
Code:
ll = LinkedList()Result:
ll = LinkedList()
ll.add(Node(1))
ll.add(Node(1))
ll.add(Node(1))
ll.sort()
print(ll)
List[ 1; 1; 1; ]