classMyLinkedList(object):def__init__(self):
self.size =0
self.head = ListNode(0)defget(self, index):"""
:type index: int
:rtype: int
"""if index <0or index >= self.size:return-1
cur = self.head
for _ inrange(index +1):
cur = cur.nextreturn cur.val
defaddAtHead(self, val):"""
:type val: int
:rtype: None
"""
self.addAtIndex(0, val)defaddAtTail(self, val):"""
:type val: int
:rtype: None
"""
self.addAtIndex(self.size, val)defaddAtIndex(self, index, val):"""
:type index: int
:type val: int
:rtype: None
"""if index > self.size:returnif index <0:
index =0
self.size +=1
pre = self.head
for _ inrange(index):
pre = pre.next
to_add = ListNode(val)
to_add.next= pre.next
pre.next= to_add
defdeleteAtIndex(self, index):"""
:type index: int
:rtype: None
"""if index <0or index >= self.size:return
self.size -=1
pre = self.head
for _ inrange(index):
pre = pre.next
pre.next= pre.next.next# 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)