Back to questions
Junior — Middle
59
Можно ли использовать встроенную функцию len() для определения длины односвязного списка в Python?
Answer from AI
sobes.tech AI
Встроенная функция len() в Python не работает для односвязных списков, если они реализованы самостоятельно (например, через узлы с указателем на следующий элемент). len() работает с последовательностями и коллекциями, которые реализуют метод __len__().
Если у вас есть класс односвязного списка, то для получения длины нужно либо:
- Хранить счетчик элементов внутри класса и обновлять его при добавлении/удалении
- Или пройтись по всем узлам и посчитать количество вручную
Пример подсчёта длины односвязного списка:
class Node:
def __init__(self, value):
self.value = value
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def length(self):
count = 0
current = self.head
while current:
count += 1
current = current.next
return count
Таким образом, len() напрямую использовать нельзя, если не реализовать метод __len__ в классе списка.