Встречается на собеседованиях • сегодня

Можно ли передать односвязный список в функцию len в Python

Нет, стандартная функция len() в Python не будет работать с односвязным списком, реализованным вручную, так как она ожидает объект с определенным протоколом (например, __len__ методом). Для работы с односвязным списком нужно либо реализовать метод __len__ в классе списка, либо написать свою функцию для подсчета элементов.

Пример реализации односвязного списка с поддержкой len():

python
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None
    
    def __len__(self):
        count = 0
        current = self.head
        while current:
            count += 1
            current = current.next
        return count

lst = LinkedList()
lst.head = Node(1)
lst.head.next = Node(2)
print(len(lst))  # 2
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы