蓝桥杯---链表类型题:
这一题要求用到单项列表来解决。也可以使用跨行接受解决,事不宜迟,直接上代码。
第一个,我使用的是链表法解决问题。
一.创建链表。
class Node:
def __init__(self,data):
self.data = data
self.next = None
class Link:
def __init__(self) -> None:
self.head = None
#初始化头节点
#这里的x,我们已经设为节点
def addNode(self,x):
point = x
point.next = self.head
self.head = point
#后续要将输入到的数,排到最前面
def changeNode(self,num):
pre = self.head
while pre.next != None:
if int(pre.next.data) == num:
temp = pre.next
pre.next = temp.next #改变pre的指针方向
temp.next = self.head #将self.head的指针给temp
self.head = temp
def print_allNode(self):
temp = self.head
while temp.data != None:
print(temp.data, end=' ')
temp = temp.next
#获取全链表的数值
#开始完成要求
M = int(input())
alist = Link()#实例化一个链表
for i in range(1,11):
a = Node(i)
alist.addNode(a)
#将数值填入列表中
while M > 0:
X = int(input())#输入的目标值
alist.changeNode(x)
alist.print_allNode#输出排序后的链表的标签
M -= 1
二.另一种方法
ls = ["1","2","3","4","5","6","7","8","9","10"]
M = int(input())
shuru = [str(input()) for i in range(M)]
for i in shuru:
ls.remove(i)
ls.insert(0,i)
print(" ".join(ls))