Skip to content

Commit d13b59e

Browse files
Implement doubly-linked list with O(1) operations
1 parent cb885b0 commit d13b59e

File tree

1 file changed

+0
-10
lines changed

1 file changed

+0
-10
lines changed

Sprint-2/implement_linked_list/linked_list.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ def push_head(self, value):
2424
return new_node
2525

2626
def pop_tail(self):
27-
2827
if self.tail is None:
2928
raise IndexError("pop_tail from empty linked list")
3029

@@ -34,33 +33,24 @@ def pop_tail(self):
3433
self.head = None
3534
self.tail = None
3635
else:
37-
# Remove from tail
3836
self.tail = self.tail.previous
3937
self.tail.next = None
4038

4139
return value
4240

4341
def remove(self, node):
44-
"""
45-
Remove the given node from the list in O(1) time.
46-
Takes a handle returned by push_head().
47-
"""
4842
if node is None:
4943
raise ValueError("Cannot remove None node")
5044

5145
if node == self.head == self.tail:
52-
# Only one element
5346
self.head = None
5447
self.tail = None
5548
elif node == self.head:
56-
# Remove from head
5749
self.head = node.next
5850
self.head.previous = None
5951
elif node == self.tail:
60-
# Remove from tail
6152
self.tail = node.previous
6253
self.tail.next = None
6354
else:
64-
# Remove from middle
6555
node.previous.next = node.next
6656
node.next.previous = node.previous

0 commit comments

Comments
 (0)