# class Node:
# def __init__(self,data):
# # 要存的数据
# self.data = data
# # 指向下一个节点的指针
# self.next = None
#
# class LinkedList:
# def __init__(self):
# # 链表长度
# self.size = 0
# # 链表的头部
# self.head = None
# # 链表的尾部
# self.last = None
# # index为取链表的第几节点
#
# def get(self,index):
# if index<0 or index>self.size:
# raise Exception('超出链表节点范围')
# # 这里声明一个变量p为当前指针位置,如果链表不为空,
# # 则self.head 为第一个节点位置,它是一个实例化的Node,
# # 它的next属性也一定存过下个节点是谁,
# # 依次找下去,找到对应节点位置,返回的是对应index的节点,也是个实例化的Node
# p = self.head
# for i in range(index):
# p = p.next
# return p
#
# def insert(self,data,index):
# #print(self.size,index)
# if index < 0 or index > self.size:
# raise Exception('超出链表节点范围')
# #声明一个节点
# node = Node(data)
# #长度为零则为空链表
# if self.size == 0:
# self.head = node
# self.last = node
# elif index==0:
# # 之前的头部为新节点的指向
# node.next = self.head
# # 新节点变为头部节点
# self.head = node
# elif self.size == index:
# # 最后一个节点指向新节点
# self.last.next = node
# # 新节点记录为最后一个节点
# self.last = node
# else:
# # 定位插入位置的上一个节点
# prev_node = self.get(index-1)
# # 插入的节点的指向改为上一个节点的指向
# node.next = prev_node.next
# # 上个节点的指向改为新插入的节点
# prev_node.next = node
# self.size+=1
#
# def output(self):
# p = self.head
# while p is not None:
# print(p.data)
# p = p.next
#
# linkedList = LinkedList()
#
# # linkedList.insert(4,4)
#
#
# linkedList.insert(6,0) #在空链表中加入一个数
# linkedList.insert(7,0) #在链表前加入一个数
#
# linkedList.insert(9,2)#在链表尾加入一个数
# linkedList.insert(5,3)#在链表尾加入一个数
# linkedList.insert(6,2)#在链表中插入一个数
# print(linkedList.get(3))
# linkedList.output()