【发布时间】:2011-07-29 20:17:45
【问题描述】:
我意识到这种数据结构最好使用内置列表类型来完成,但出于学术原因,我试图更多地理解这一点。鉴于我有一个这样的链表:
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()
有什么想法吗?
【问题讨论】:
-
如果列表中有奇数个元素会发生什么?您是否尝试过实际编写
reorder方法? -
如果你的节点数是奇数,你想在开头还是结尾的唯一节点?
-
感谢您的回复。是的,奇数长度是允许的,唯一的节点应该保留在末尾。
-
马特:是的,很多努力。我仍然很沮丧......
标签: python data-structures linked-list