File tree Expand file tree Collapse file tree 1 file changed +29
-2
lines changed Expand file tree Collapse file tree 1 file changed +29
-2
lines changed Original file line number Diff line number Diff line change @@ -119,6 +119,22 @@ def clear(self):
119119 self .length = 0
120120 self .tailnode = None
121121
122+ def reverse (self ):
123+ """反转链表"""
124+ curnode = self .root .next
125+ self .tailnode = curnode
126+ prevnode = None
127+
128+ while curnode :
129+ nextnode = curnode .next
130+ curnode .next = prevnode
131+
132+ if nextnode is None :
133+ self .root .next = curnode
134+
135+ prevnode = curnode
136+ curnode = nextnode
137+
122138
123139def test_linked_list ():
124140 ll = LinkedList ()
@@ -169,6 +185,16 @@ def test_linked_list_remove():
169185 ll .remove (7 )
170186 print (list (ll ))
171187
188+
189+ def test_linked_list_reverse ():
190+ ll = LinkedList ()
191+ n = 10
192+ for i in range (n ):
193+ ll .append (i )
194+ ll .reverse ()
195+ assert list (ll ) == list (reversed (range (n )))
196+
197+
172198def test_linked_list_append ():
173199 ll = LinkedList ()
174200 ll .appendleft (1 )
@@ -177,5 +203,6 @@ def test_linked_list_append():
177203
178204
179205if __name__ == '__main__' :
180- test_linked_list ()
181- test_linked_list_append ()
206+ # test_linked_list()
207+ # test_linked_list_append()
208+ test_linked_list_reverse ()
You can’t perform that action at this time.
0 commit comments