Guest Июль 8, 2020 в 7:20
Возможная реализация односвязного списка вместе с методом поиска n-того с конца элемента (аналогично взятию отрицательного индекса у list):
class Node:
def __init__(self, value, previous=None):
self.value = value
self.next = None
if previous is not None:
previous.next = self
def find_from_back(self, n):
back_node = self
node = self
for i in range(n):
node = node.next
if node is None:
raise IndexError('Length of linked list is less than n')
while node is not None:
node = node.next
back_node = back_node.next
return back_node
Работает за O(n), где n - длина списка.