Skip to content

Instantly share code, notes, and snippets.

@abdullahmujahidali
Created August 27, 2024 09:42
Show Gist options
  • Save abdullahmujahidali/cd37e9eacf57312419611b12edff9425 to your computer and use it in GitHub Desktop.
Save abdullahmujahidali/cd37e9eacf57312419611b12edff9425 to your computer and use it in GitHub Desktop.
Single LinkedList
class Node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
class LinkedList:
def __init__(self):
self.head = None
def get_length(self):
counter = 0
head = self.head
while head:
counter += 1
head = head.next
return counter
def insert_at_start(self, data):
node = Node(data, self.head)
self.head = node
def insert_at_end(self, data):
itr = self.head
if self.head is None:
self.head = Node(data, none)
return
while itr.next:
itr = itr.next
itr.next = Node(data)
def insert_at(self, index, data):
if index < 0:
print("Cannot have negative index")
return
elif index > self.get_length():
print("Length exceeded")
return
elif index == 0:
self.insert_at_start(data)
else:
itr = self.head
count = 0
while itr:
if count == index-1:
node = Node(data, itr.next)
itr.next = node
break
itr = itr.next
count = count + 1
def delete_at(self, index):
if index < 0:
print("Cannot have negative index")
return
elif index > self.get_length():
print("Length exceeded")
return
elif index == 0:
self.head = self.head.next
else:
itr = self.head
count = 0
while itr:
if count == index-1:
itr.next = itr.next.next
break
itr = itr.next
count = count + 1
def insert_values(self, data_list):
self.head = none
for data in data_list:
self.insert_at_end(data)
def print(self):
head = self.head
while head:
print("Value: ", head.data)
head = head.next
return
ll = LinkedList()
ll.insert_at_start(2)
ll.insert_at_start(18)
ll.insert_at_end(11)
ll.insert_at_start(221)
ll.print()
print(ll.get_length())
ll.insert_at(2,65)
ll.insert_at(3,8787)
ll.print()
ll.delete_at(1)
print("Removing values")
ll.print()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment