|
@@ -21,21 +21,38 @@ class LinkedList:
|
|
raise ListIsEmpty()
|
|
raise ListIsEmpty()
|
|
i = 0
|
|
i = 0
|
|
ptr = self.__head
|
|
ptr = self.__head
|
|
- while i <= n:
|
|
|
|
|
|
+ while i < n:
|
|
if ptr.next_ is None:
|
|
if ptr.next_ is None:
|
|
raise IndexError()
|
|
raise IndexError()
|
|
i += 1
|
|
i += 1
|
|
ptr = ptr.next_
|
|
ptr = ptr.next_
|
|
return ptr.value
|
|
return ptr.value
|
|
|
|
|
|
- def __setitem__(self, a, b):
|
|
|
|
- ...
|
|
|
|
|
|
+ def __setitem__(self, n: int, value: Any):
|
|
|
|
+ ptr = self.__head
|
|
|
|
+ for i in range(n):
|
|
|
|
+ ptr = ptr.next_
|
|
|
|
+ print(f"At {i}")
|
|
|
|
+ ptr.value = value
|
|
|
|
|
|
def index(self, value: Any) -> int:
|
|
def index(self, value: Any) -> int:
|
|
- ...
|
|
|
|
|
|
+ ptr = self.__head
|
|
|
|
+ i = 0
|
|
|
|
+ while True:
|
|
|
|
+ if ptr.value == value:
|
|
|
|
+ return i
|
|
|
|
+ else:
|
|
|
|
+ i += 1
|
|
|
|
+ ptr = ptr.next_
|
|
|
|
+ if ptr is None:
|
|
|
|
+ break
|
|
|
|
+ raise ValueError()
|
|
|
|
|
|
def append(self, value: Any):
|
|
def append(self, value: Any):
|
|
ptr = self.__head
|
|
ptr = self.__head
|
|
|
|
+ if ptr is None:
|
|
|
|
+ self.__head = Node(value=value, next_=None)
|
|
|
|
+ return
|
|
while True:
|
|
while True:
|
|
if ptr.next_ is None:
|
|
if ptr.next_ is None:
|
|
break
|
|
break
|
|
@@ -43,4 +60,5 @@ class LinkedList:
|
|
ptr.next_ = Node(value, next_=None)
|
|
ptr.next_ = Node(value, next_=None)
|
|
|
|
|
|
def prepend(self, value: Any):
|
|
def prepend(self, value: Any):
|
|
- ...
|
|
|
|
|
|
+ new_node = Node(value=value, next_=self.__head)
|
|
|
|
+ self.__head = new_node
|