如何對列表重新排序,使其從第一次出現的最小元素開始,然後以三步向後一步向後移動? 我只能找到最小的元素(例如,我在下面的測試中得到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我不太清楚最小節點和最小值有什麼區別,也許我需要價值並將值放在列表中? –