Я пытаюсь поменять пары узлов в односвязном списке так, что если связанный список 1-> 2-> 3-> 4, то будет выведено 2-> 1-> 4-> 3. Мне удалось вывести 2-> 1-> 3-> 4 путем перестановки первой пары, но теперь я не уверен, как l oop по всему списку и выполнить оставшиеся перестановки. Интуиция подсказывает мне, что мне нужно некоторое время использовать l oop, но я не уверен, как это сделать. Может кто-нибудь помочь, пожалуйста?
class Node():
def __init__(self,dataval=None):
self.dataval=dataval
self.nextval=None
class Linkedlist():
def __init__(self,headval=None):
self.headval=headval
def printlist(self):
headval=self.headval
while headval is not None:
print(headval.dataval)
headval=headval.nextval
def swapnodes(self,headval):
temp=headval.nextval
headval.nextval=temp.nextval
temp.nextval=headval
self.headval=temp
List1=Linkedlist()
Node1=Node("1")
Node2=Node("2")
Node3=Node("3")
Node4=Node("4")
List1.headval=Node1
Node1.nextval=Node2
Node2.nextval=Node3
Node3.nextval=Node4
List1.swapnodes(Node1)
List1.printlist()