Linked List
1. Problem¶
A array
like structure, but dynamic with actual Insert and Delete operation. Implement Linked List
2. Solve¶
Linked list¶
class Node:
def __init__(self, value, nextNode = None):
self.value = value
self.nextNode = nextNode
class LinkedList:
def __init__(self):
self.head = None
self.tail = None
def insert(self, v):
if self.head == None:
self.head = Node(v)
self.tail = self.head
return
self.tail.nextNode = Node(v)
self.tail = self.tail.nextNode
def delete(self, v):
if self.head == None:
return
# Head delete
if self.head.value == v:
tmp = self.head
self.head = self.head.nextNode
self.head.prevNode = None
# del tmp
# Middle, Tail delete
# TODO: Traversal to v and delete
Double Linked list¶
class Node:
def __init__(self, value, nextNode = None, prevNode = None):
self.value = value
self.nextNode = nextNode
self.prevNode = prevNode
class DoubleLinkedList:
def __init__(self):
self.head = None
self.tail = None
def insert(self, v):
if self.head == None:
self.head = Node(v)
self.tail = self.head
return
self.tail.nextNode = Node(v, prevNode = self.tail)
self.tail = self.tail.nextNode
def delete(self, v):
if self.head == None:
return
# Head delete
if self.head.value == v:
tmp = self.head
self.head = self.head.nextNode
self.head.nextNode
# del tmp
# Tail delete
# Middle,
# TODO: Traversal to v and delete
Last update :
September 3, 2023
Created : September 3, 2023
Created : September 3, 2023