Doubly Linked List in Python
Doubly Linked List in Python
For each insertion operation, we need to consider the three cases. These three cases also need to be
considered when removing data from the doubly linked list.
• Insertion at end
class Node:
self.data = data
self.next = None
self.prev = None
new_node = Node(data)
new_node.next = None
if head is None:
head = new_node
new_node.prev = None
return
temp = head
temp = temp.next
temp.next = new_node
new_node.prev = temp
new_node = Node(data)
new_node.next = head
new_node.prev = None
head.prev = new_node
head = new_node
def calcSize(node):
size = 0
node = node.next
size += 1
return size
size = calcSize(head)
return
if pos == 0:
insertStart(head, data)
insertLast(head, data)
else:
temp = head
new_node = Node(data)
new_node.next = None
temp = temp.next
pos -= 1
temp2 = temp.next
new_node.next = temp2
new_node.prev = temp
temp.next = new_node
temp2.prev = new_node
def display(node):
end = None
end = node
node = node.next
end = end.prev
head = None
insertStart(head, 12)
insertStart(head, 16)
insertStart(head, 20)
insertLast(head, 10)
insertLast(head, 14)
insertLast(head, 18)
insertLast(head, 11)
display(head)
display(head)