Загрузка данных


def pop(self, idx=-1):
    """Удалить по индексу (по умолчанию последний) и вернуть значение.
    Время: с конца/начала — O(1), из середины — O(n). Память O(1) — только указатели."""
    if self.size == 0:
        raise IndexError("pop from empty list")
    node = self._get_node(idx)
    prev_node, next_node = node.prev, node.next
    if prev_node:
        prev_node.next = next_node
    else:                      # удалили голову
        self.head = next_node
    if next_node:
        next_node.prev = prev_node
    else:                      # удалили хвост
        self.tail = prev_node
    self.size -= 1
    return node.val