Skip to content

Commit 3973c57

Browse files
committed
Refactor LinkedList methods for simplicity
1 parent 4e34ba4 commit 3973c57

File tree

1 file changed

+17
-20
lines changed

1 file changed

+17
-20
lines changed

Sprint-2/implement_linked_list/linked_list.py

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ def __init__(self):
55

66
def push_head(self, element):
77
node = Node(element)
8-
if self.head and self.tail:
8+
if self.head:
99
node.next = self.head
10-
self.head.previous = node
11-
self.head = node
10+
self.head.previous = self.head = node
1211
elif not self.head and not self.tail:
1312
self.head = node
1413
self.tail = node
@@ -18,29 +17,27 @@ def pop_tail(self):
1817
node = self.tail
1918
if self.tail is not self.head:
2019
self.tail = node.previous
21-
node.previous.next = None
22-
node.previous = None
20+
node.previous.next = node.previous = None
2321
else:
2422
self.head = None
2523
self.tail = None
2624
return node.value
2725

2826
def remove(self, node):
29-
if self.head != node and self.tail != node:
30-
node.previous.next = node.next
31-
node.next.previous = node.previous
32-
node.previous, node.next = None, None
33-
elif self.head == node and self.tail != node:
34-
node.next.previous = None
35-
self.head = node.next
36-
node.previous, node.next = None, None
37-
elif self.head != node and self.tail == node:
38-
node.previous.next = None
39-
self.tail = node.previous
40-
node.previous, node.next = None, None
41-
elif self.head == node and self.tail == node:
42-
self.head = None
43-
self.tail = None
27+
if self.head == node:
28+
if self.tail == node:
29+
self.head = self.tail = None
30+
else:
31+
self.head = node.next
32+
node.next.previous = node.previous = node.next = None
33+
else:
34+
if self.tail == node:
35+
self.tail = node.previous
36+
node.previous.next = node.previous = node.next = None
37+
else:
38+
node.previous.next = node.next
39+
node.next.previous = node.previous
40+
node.previous = node.next = None
4441

4542

4643
class Node:

0 commit comments

Comments
 (0)