Advertisement
smj007

Untitled

Mar 6th, 2024
665
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.77 KB | None | 0 0
  1. class Node:
  2.     def __init__(self, val):
  3.         self.val = val
  4.         self.next = None
  5.  
  6. class MyLinkedList:
  7.  
  8.     def __init__(self):
  9.         self.head = Node(None)
  10.         self.size = 0
  11.  
  12.     def get(self, index: int) -> int:
  13.  
  14.         if index < 0 or index >= self.size:
  15.             return -1
  16.  
  17.         current = self.head
  18.         for i in range(index+1):
  19.             current = current.next
  20.  
  21.         return current.val
  22.        
  23.     def addAtHead(self, val: int) -> None:
  24.         new_head = Node(val)
  25.         self.head.next, new_head.next = new_head, self.head.next
  26.         self.size += 1    
  27.  
  28.     def addAtTail(self, val: int) -> None:
  29.         new_node = Node(val)
  30.         current = self.head
  31.         while current.next:
  32.             current = current.next
  33.  
  34.         current.next = new_node
  35.         self.size += 1
  36.  
  37.     def addAtIndex(self, index: int, val: int) -> None:
  38.  
  39.         if index > self.size:
  40.             return
  41.  
  42.         if index < 0:
  43.             index = 0
  44.  
  45.         new_node = Node(val)
  46.         current = self.head
  47.         for i in range(index+1):
  48.             prev = current
  49.             current = current.next
  50.  
  51.         prev.next, new_node.next = new_node, current
  52.         self.size = self.size + 1
  53.        
  54.  
  55.     def deleteAtIndex(self, index: int) -> None:
  56.         if index <0 or index >= self.size:
  57.             return
  58.  
  59.         current = self.head
  60.         for i in range(index+1):
  61.             prev = current
  62.             current = current.next
  63.  
  64.         prev.next = current.next
  65.         self.size = self.size - 1
  66.        
  67.  
  68.  
  69. # Your MyLinkedList object will be instantiated and called as such:
  70. # obj = MyLinkedList()
  71. # param_1 = obj.get(index)
  72. # obj.addAtHead(val)
  73. # obj.addAtTail(val)
  74. # obj.addAtIndex(index,val)
  75. # obj.deleteAtIndex(index)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement