File tree Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -43,6 +43,8 @@ def append(self, value): # O(1)
43
43
self .length += 1
44
44
45
45
def appendleft (self , value ):
46
+ if self .maxsize is not None and len (self ) > self .maxsize :
47
+ raise Exception ('LinkedList is Full' )
46
48
headnode = self .root .next
47
49
node = Node (value )
48
50
self .root .next = node
@@ -100,6 +102,9 @@ def popleft(self): # O(1)
100
102
self .root .next = headnode .next
101
103
self .length -= 1
102
104
value = headnode .value
105
+
106
+ if self .tailnode is headnode : # 勘误:增加单节点删除 tailnode 处理
107
+ self .tailnode = None
103
108
del headnode
104
109
return value
105
110
@@ -138,6 +143,12 @@ def test_linked_list():
138
143
assert len (ll ) == 2
139
144
assert list (ll ) == [1 , 3 ]
140
145
146
+ assert ll .popleft () == 1
147
+ assert list (ll ) == [3 ]
148
+ ll .popleft ()
149
+ assert len (ll ) == 0
150
+ assert ll .tailnode is None
151
+
141
152
ll .clear ()
142
153
assert len (ll ) == 0
143
154
You can’t perform that action at this time.
0 commit comments