这里暂时没有考虑pos位于尾部的情况
# 节点的定义:
class Node:
'''节点的定义'''
def __init__(self,val):
self.val = val
self.next = None
# 单链表的定义:
class SingleLinkList:
# 这里调用节点的定义,创建一个空链表,self.__head表示始终指向链表的头
def __init__(self,Node=None):
self.__head = Node #
# 给空链表里面插入数据:
#这里val指用户给的一个数
#头插
def headadd(self,val):
# 这里指:将数字val变成节点,然后插入空链表中
node = Node(val)
# 所以我们要把这个节点的next指向上述空链表的中
node.next = self.__head
self.__head = node
#尾插
def tailadd(self,val):
# val 变节点
node = Node(val)
cur = self.__head
if cur == None:
self.headadd(node)
else:
while cur.next:
cur= cur.next
cur.next = node
#中间插
def middleadd(self,val,pos):
node = Node(val)
if pos<=0:
self.headadd(node)
else:
#找到待插位置前一个节点
cur = self.__head
for i in range(pos-1):
cur = cur.next
node.next = cur.next
cur.nex