Doubly-linked list/Definition: Difference between revisions

Content added Content deleted
(Example usage of Python built-in and an alternative Python implementation)
m (Removed duplicate method from alternative Python implementation.)
Line 2,786: Line 2,786:
node.next.prev = node.prev
node.next.prev = node.prev
self.size -= 1
self.size -= 1

def _find_node(self, index) -> Node:
if index > self.size - 1 or index < -self.size:
raise IndexError("list index out of range")

if index >= 0:
node = self.head
for _ in range(index):
node = node.next
else:
node = self.tail
for _ in range(self.size - 1, self.size - abs(index), -1):
node = node.prev

return node


def insert(self, index: int, value: Any) -> None:
def insert(self, index: int, value: Any) -> None: