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: |