Skip to content

Commit 2ecb9e8

Browse files
committed
refactor: simplify linked list node removal and reduce memory usage
1 parent 557171c commit 2ecb9e8

1 file changed

Lines changed: 6 additions & 10 deletions

File tree

‎Sprint-2/implement_linked_list/linked_list.py‎

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
class LinkedList:
2-
class clsNode:
2+
class Node:
3+
__slots__ = ("next","previous","value")
4+
35
def __init__(self, value):
46
self.next = None
57
self.previous = None
@@ -11,7 +13,7 @@ def __init__(self):
1113
self.size = 0
1214

1315
def push_head(self, value):
14-
new_node = self.clsNode(value=value)
16+
new_node = self.Node(value=value)
1517
if self.head == None:
1618
self.head = new_node
1719
self.tail = new_node
@@ -27,15 +29,9 @@ def pop_tail(self):
2729
return
2830
removed_value = self.tail.value
2931

30-
if self.head == self.tail:
31-
self.head = None
32-
self.tail = None
33-
self.size -= 1
34-
return removed_value
35-
self.tail = self.tail.previous
36-
self.tail.next = None
37-
self.size -= 1
32+
self.remove(self.tail)
3833
return removed_value
34+
3935

4036
def remove(self, node):
4137
if node == None:

0 commit comments

Comments
 (0)