如何对列表重新排序,使其从第一次出现的最小元素开始,然后以三步向后一步向后移动? 我只能找到最小的元素(例如,我在下面的测试中得到5)?那么我怎样才能得到清单(5,53,65,33,51,62,61,38,74,45,97,49)呢?python链接列表向后移动并向前移动
class ExtendedLinkedList(LinkedList):
def __init__(self, L = None):
super().__init__(L)
def rearrange(self):
node = self.head
if not node:
return None
Min = node.value
while node:
if node.value < Min:
Min = node.value
node = node.next_node
return Min
---------test---------
LLL = ExtendedLinkedList([49, 97, 53, 5, 33, 65, 62, 51, 38, 61, 45, 74])
LLL.print()
print(LLL.rearrange())
嗯,首先,你”如果你想能够从该节点向后移动一步,就必须跟踪min_node_,而不仅仅是min_value_。 – abarnert
其次,您可能需要使用双向链接列表,而且这看起来是单链接的。奇怪的是,具体的要求意味着有一种方法可以非常有效地使用单链表来完成此操作,但这可能不是您想要的,并且需要一些聪明才智。 – cge
@abarnert我不太清楚最小节点和最小值有什么区别,也许我需要价值并将值放在列表中? –