Linked List - AndrewMZ6/python_cheat_sheet GitHub Wiki
Image for Linked List code.
Each node has 2 fields:
- data - the actual value of the node
- next - should contain address of the next node, but basicaly contains the next node, which also has two fields:
- data ...
- next ...
Code:
class Node:
"""
instances of this class are elements 0f linked list
"""
def __init__(self, value):
self.data = value
self.next = None
class linkedList:
"""
Graphically this class looks like recursive rectangular.
See Wiki -> linked list
"""
def __init__(self):
self.head = None
def add_item_end(self, value):
new_node = Node(value)
curr = self.head
if curr is None:
self.head = new_node
return
while curr.next:
curr = curr.next
curr.next = new_node
def add_front(self, value):
new_node = Node(value)
curr = self.head
new_node.next = curr
self.head = new_node
def add_after(self, value, node):
new_node = Node(value)
new_node.next = node.next
node.next = new_node
def reverse(self):
curr = self.head
prev = None
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
self.head = prev
def show(self):
curr = self.head
while curr:
print(curr.data)
curr = curr.next
l = linkedList()
l.add_item_end(41)
l.add_front(77)
l.add_after(85, l.head.next)
l.add_after(9, l.head.next)
l.show()
output:
77
41
9
85