Нашел код, но не могу разобраться, что он делает

set_of_tarifs = ['Стандарт', 'Эконом', 'Развлечение без границ', 'Полный безлимит']

a = test.LinkedList(nodes=set_of_tarifs)
print(a)
print(a.head)
print(a.head.next)
print(a.head.next.next)
print(a.head.next.next.next)
print(a.head.next.next.next.next)


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

    def __repr__(self):
        return self.data


class LinkedList:
    def __init__(self, nodes):
        self.head = None

        if nodes is not None:
            node = Node(data=nodes.pop(0))
            self.head = node
            for elem in nodes:
                node.next = Node(data=elem)
                node = node.next

    def __repr__(self):
        node = self.head
        nodes = []
        while node is not None:
            nodes.append(node.data)
            node = node.next
        nodes.append("None")
        return " -> ".join(nodes)

    def __iter__(self):
        node = self.head
        while node is not None:
            yield node
            node = node.next

Я вот понял, что есть массив set_of_tarifs и он передаётся в класс LinledList. А вот что дальше происходит внутри классов LinkedList и Node очень туго понимаю. Буду благодарен за любое объяснение)


Ответы (0 шт):