@@ -81,8 +81,9 @@ def set_head(self, node: Node) -> None:
81
81
self .insert_before_node (self .head , node )
82
82
83
83
def set_tail (self , node : Node ) -> None :
84
- if self .head is None :
85
- self .set_head (node )
84
+ if self .tail is None :
85
+ self .head = node
86
+ self .tail = node
86
87
else :
87
88
self .insert_after_node (self .tail , node )
88
89
@@ -104,9 +105,7 @@ def insert_before_node(self, node: Node, node_to_insert: Node) -> None:
104
105
105
106
node .previous = node_to_insert
106
107
107
- def insert_after_node (self , node : Node | None , node_to_insert : Node ) -> None :
108
- assert node is not None
109
-
108
+ def insert_after_node (self , node : Node , node_to_insert : Node ) -> None :
110
109
node_to_insert .previous = node
111
110
node_to_insert .next = node .next
112
111
@@ -127,7 +126,7 @@ def insert_at_position(self, position: int, value: int) -> None:
127
126
return
128
127
current_position += 1
129
128
node = node .next
130
- self .insert_after_node ( self . tail , new_node )
129
+ self .set_tail ( new_node )
131
130
132
131
def get_node (self , item : int ) -> Node :
133
132
node = self .head
@@ -237,6 +236,22 @@ def create_linked_list() -> None:
237
236
7
238
237
8
239
238
9
239
+ >>> linked_list = LinkedList()
240
+ >>> linked_list.insert_at_position(position=1, value=10)
241
+ >>> str(linked_list)
242
+ '10'
243
+ >>> linked_list.insert_at_position(position=2, value=20)
244
+ >>> str(linked_list)
245
+ '10 20'
246
+ >>> linked_list.insert_at_position(position=1, value=30)
247
+ >>> str(linked_list)
248
+ '30 10 20'
249
+ >>> linked_list.insert_at_position(position=3, value=40)
250
+ >>> str(linked_list)
251
+ '30 10 40 20'
252
+ >>> linked_list.insert_at_position(position=5, value=50)
253
+ >>> str(linked_list)
254
+ '30 10 40 20 50'
240
255
"""
241
256
242
257
0 commit comments