往空链表中插入节点时相当于头插
其余情况,需要找到尾节点
# 节点的定义:
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 walkthrough(self):
cur = self.__head
while cur:
print(cur.val)
cur = cur.next
# 创建链表实例
link = SingleLinkList()
link.headadd(1)
link.headadd(2)
link.headadd(3)
link.headadd(4)
link.headadd(5)
link.tailadd(1)
link.tailadd(2)
link.tailadd(3)
link.tailadd(4)
link.tailadd(5)
link.walkthrough()