File tree Expand file tree Collapse file tree 2 files changed +15
-9
lines changed Expand file tree Collapse file tree 2 files changed +15
-9
lines changed Original file line number Diff line number Diff line change @@ -74,6 +74,8 @@ def remove(self, value): # O(n)
74
74
del curnode
75
75
self .length -= 1
76
76
return 1 # 表明删除成功
77
+ else :
78
+ prevnode = curnode
77
79
return - 1 # 表明删除失败
78
80
79
81
def find (self , value ): # O(n)
@@ -113,26 +115,27 @@ def test_linked_list():
113
115
ll .append (0 )
114
116
ll .append (1 )
115
117
ll .append (2 )
118
+ ll .append (3 )
116
119
117
- assert len (ll ) == 3
120
+ assert len (ll ) == 4
118
121
assert ll .find (2 ) == 2
119
- assert ll .find (3 ) == - 1
122
+ assert ll .find (- 1 ) == - 1
120
123
121
124
assert ll .remove (0 ) == 1
122
- assert ll .remove (3 ) == - 1
125
+ assert ll .remove (10 ) == - 1
126
+ assert ll .remove (2 ) == 1
123
127
assert len (ll ) == 2
128
+ assert list (ll ) == [1 , 3 ]
124
129
assert ll .find (0 ) == - 1
125
130
126
- assert list (ll ) == [1 , 2 ]
127
-
128
131
ll .appendleft (0 )
129
- assert list (ll ) == [0 , 1 , 2 ]
132
+ assert list (ll ) == [0 , 1 , 3 ]
130
133
assert len (ll ) == 3
131
134
132
135
headvalue = ll .popleft ()
133
136
assert headvalue == 0
134
137
assert len (ll ) == 2
135
- assert list (ll ) == [1 , 2 ]
138
+ assert list (ll ) == [1 , 3 ]
136
139
137
140
ll .clear ()
138
141
assert len (ll ) == 0
Original file line number Diff line number Diff line change @@ -69,12 +69,15 @@ def remove(self, value): # O(n)
69
69
"""
70
70
prevnode = self .root #
71
71
curnode = self .root .next
72
- while curnode . next is not None :
72
+ for curnode in self . iter_node () :
73
73
if curnode .value == value :
74
74
prevnode .next = curnode .next
75
75
del curnode
76
76
self .length -= 1
77
- return
77
+ return 1 # 表明删除成功
78
+ else :
79
+ prevnode = curnode
80
+ return - 1 # 表明删除失败
78
81
79
82
def find (self , value ): # O(n)
80
83
""" 查找一个节点,返回序号,从 0 开始
You can’t perform that action at this time.
0 commit comments