πLinked List
Linked List
Singly Linked List
Design a Linked List
Design a Linked List with head and size attributes
example=[1,2,3,4,5,6]
# obj = MyLinkedList()
# param_1 = obj.get(index)
# obj.addAtHead(val)
# obj.addAtTail(val)
# obj.addAtIndex(index,val)
# obj.deleteAtIndex(index)class Node:
def __init__(self, val, next=None):
self.val = val
self.next = next
class LinkedList:
def __init__(self):
self.head = None
self.size = 0
def get(self, index: int) -> int:
if index<0 or index>=self.size:
return -1
curr = self.head
for _ in range(index):
curr=curr.next
if curr is None:
return -1
return curr.val
def addAtHead(self, val: int) -> None:
self.head=Node(val, self.head)
self.size += 1
def addAtTail(self, val: int) -> None:
if self.head is None:
self.head = Node(val)
else:
curr=self.head
while curr.next:
curr=curr.next
curr.next=Node(val)
self.size += 1
def addAtIndex(self, index: int, val: int) -> None:
if index<0 or index>self.size:
return
if index==0:
self.addAtHead(val)
else:
curr=self.head
for _ in range(index-1):
curr=curr.next
curr.next=Node(val, curr.next)
self.size += 1
def deleteAtIndex(self, index: int) -> None:
if index<0 or index>=self.size:
return
if index==0:
self.head=self.head.next
else:
curr=self.head
for _ in range(index-1):
curr=curr.next
curr.next=curr.next.next
self.size -= 1Design a Linked List with head, tail and size attributes
What is the difference between the two implementations?
Doubly Linked List
Why we need Doubly Linked List? Is it more efficient than Singly Linked List?
What are the techniques to solve the linked list problems?
Questions
Last updated