【发布时间】:2017-09-20 18:42:08
【问题描述】:
我在课堂上有一个链表,比如
7,5,3,1,2,4,6,8
我想得到类似的输出
1,3,5,7,2,4,6,8
当我尝试使用下面的反向代码时:
class Linkedlist:
def __init__(self, L = None):
...
def partlyreverse(self):
tail = self.head
current_node = self.head.next_node
tail.next_node = None
while current_node.value % 2 == 1:
next_current_node = current_node.next_node
current_node.next_node = tail
tail = current_node
current_node = next_current_node
self.head = tail
L = Linkedlist([7,5,3,1,2,4,6,8])
L.partlyreverse()
我只能得到
1,3,5,7
那我该怎么做呢?
谢谢!
【问题讨论】:
-
尝试将所有值存储在一个集合中并执行以下操作:
sorted([odd for odd in list1 if odd % 2 != 0 ]) + sorted([even for even in list1 if even % 2 == 0]),这将返回一个包含您想要的值的列表。 -
reverse是什么意思?我真的看不出你在你的例子中颠倒了什么地方。它看起来更像是对列表进行排序,并将之前的列表分成偶数和奇数列表。 -
我想通过使用链表而不是链表来解决这个问题......无论如何,谢谢!
标签: python list linked-list reverse