Skip to content

Commit 6371088

Browse files
authored
Remove extra len calls in doubly-linked-list's methods (#8600)
1 parent 3d2012c commit 6371088

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

data_structures/linked_list/doubly_linked_list.py

+9-5
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ def insert_at_nth(self, index: int, data):
8181
....
8282
IndexError: list index out of range
8383
"""
84-
if not 0 <= index <= len(self):
84+
length = len(self)
85+
86+
if not 0 <= index <= length:
8587
raise IndexError("list index out of range")
8688
new_node = Node(data)
8789
if self.head is None:
@@ -90,7 +92,7 @@ def insert_at_nth(self, index: int, data):
9092
self.head.previous = new_node
9193
new_node.next = self.head
9294
self.head = new_node
93-
elif index == len(self):
95+
elif index == length:
9496
self.tail.next = new_node
9597
new_node.previous = self.tail
9698
self.tail = new_node
@@ -131,15 +133,17 @@ def delete_at_nth(self, index: int):
131133
....
132134
IndexError: list index out of range
133135
"""
134-
if not 0 <= index <= len(self) - 1:
136+
length = len(self)
137+
138+
if not 0 <= index <= length - 1:
135139
raise IndexError("list index out of range")
136140
delete_node = self.head # default first node
137-
if len(self) == 1:
141+
if length == 1:
138142
self.head = self.tail = None
139143
elif index == 0:
140144
self.head = self.head.next
141145
self.head.previous = None
142-
elif index == len(self) - 1:
146+
elif index == length - 1:
143147
delete_node = self.tail
144148
self.tail = self.tail.previous
145149
self.tail.next = None

0 commit comments

Comments
 (0)