好吧,我应该做以下事情:
使用类节点(经典构造)...
class No:
def __init__(self, valor, prox):
self.valor = valor
self.prox = prox
创建一个函数,在调用时将交换链表的第二个和第三个字符,并在原始链表的末尾添加一个反向链表。因此,如果我们执行 function(list),则 lista = No(1, No(4, No(2, None))) (1>4>2) 它将返回 (1>2>4>4>2>1 )。
问题在于我通过将术语添加到常规列表并在那里弄乱它们来解决问题。但是,后来我发现我应该只使用链表(我放在上面的那个节点类),现在我有点无能为力......
错误解决方案的代码:
class No:
def __init__(self, valor, prox):
self.valor = valor
self.prox = prox
def printLista(lista):
global lista1
lista1 = []
while lista:
lista1.append(lista.valor)
lista = lista.prox
return lista1
def printbackwards(lista):
global lista2
if lista == None: return
printbackwards(lista.prox)
lista2.append(lista.valor)
def swapprint(lista):
global lista1, lista2
i = 0
lista2 = []
printlist(lista)
printbackwards(lista)
for i in range(len(lista1)):
print lista1[i], lista2[i],
lista = No(3, No(1, No(4, No(2, None))))
swapprint(lista)