Я понимаю, что такого рода структура данных лучше сделать со встроенным типом списка, но я пытаюсь понять это больше по академическим причинам. Учитывая, что у меня есть связанный список, как это:
a -> b -> c -> d -> e -> f
Я хотел бы изменить ссылки на
b -> a -> d -> c -> f -> e
Другими словами, каждая пара переключается. Я использую эти два класса для создания связного списка.
class Node:
def __init__(self):
self.cargo = None
self.next = None
class LinkedList:
def __init__(self):
self.cur_node = None
def add_node(self, cargo):
new_node = Node()
new_node.cargo = cargo
new_node.next = self.cur_node
self.cur_node = new_node
def print_list(self):
node = self.cur_node
while node:
print node.cargo
node = node.next
def reorder(self):
# missing code here!
ll = LinkedList()
ll.add_node("a")
ll.add_node("b")
ll.add_node("c")
ll.add_node("d")
ll.add_node("e")
ll.add_node("f")
ll.reorder()
ll.print_list()
Есть идеи?