Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node:
- def __init__(self, val):
- self.val = val
- self.next = None
- class MyLinkedList:
- def __init__(self):
- self.head = Node(None)
- self.size = 0
- def get(self, index: int) -> int:
- if index < 0 or index >= self.size:
- return -1
- current = self.head
- for i in range(index+1):
- current = current.next
- return current.val
- def addAtHead(self, val: int) -> None:
- new_head = Node(val)
- self.head.next, new_head.next = new_head, self.head.next
- self.size += 1
- def addAtTail(self, val: int) -> None:
- new_node = Node(val)
- current = self.head
- while current.next:
- current = current.next
- current.next = new_node
- self.size += 1
- def addAtIndex(self, index: int, val: int) -> None:
- if index > self.size:
- return
- if index < 0:
- index = 0
- new_node = Node(val)
- current = self.head
- for i in range(index+1):
- prev = current
- current = current.next
- prev.next, new_node.next = new_node, current
- self.size = self.size + 1
- def deleteAtIndex(self, index: int) -> None:
- if index <0 or index >= self.size:
- return
- current = self.head
- for i in range(index+1):
- prev = current
- current = current.next
- prev.next = current.next
- self.size = self.size - 1
- # Your MyLinkedList object will be instantiated and called as such:
- # obj = MyLinkedList()
- # param_1 = obj.get(index)
- # obj.addAtHead(val)
- # obj.addAtTail(val)
- # obj.addAtIndex(index,val)
- # obj.deleteAtIndex(index)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement