Мне нужно написать алгоритм, который находит длину l oop в связанном списке и возвращает (если l oop существует), а также возвращает элемент в l oop. если в списке нет l oop, вернуть None. вот мой код:
def find_circle(self):
slower = self.head
faster = self.head
while (slower is not None and faster is not None):
if faster.next is not None:
faster = faster.next.next
slower = slower.next
if slower == faster:
counter = 1
slower = slower.next
while slower != faster:
slower = slower.next
counter += 1
return counter, slower.data
return None
код должен иметь временную сложность O (n) и дополнительную пространственную сложность O (1). Соответствует ли этот код временной и пространственной сложности?