单链表:
1、定义链表
class ListNode: # 定义节点 def __init__(self, x): self.val = x # 节点当前值 self.next = None # 指向的下一节点,None表示没有下一节点
2、插入数据
# 单链表的插入(在第 s 个结点后面插入 data) def InsertList(self,s,data): if self.IsEmpty() or s < 0 or s > self.LengthList(): print("Insert failed!") return p = self.head index = 1 while index < s: # 循环逐个遍历到所需插入的位置 p = p.next # 更新指针节点,p.next表示下一节点 index += 1 # 最后在p为s节点处退出循环,退出时p是s节点 node = Node(data) # 新建节点 node.next = p.next # 设置下一节点,为:原s节点的下一节点 p.next = node # s节点现在的下一节点,为:新节点
3、删除数据
# 单链表的删除(删除第 s 个结点) def DeleteList(self, s): if self.IsEmpty() or s < 0 or s > self.LengthList(): print("Delete failed! ") return p = self.head index = 1 while index < s: pre = p # 备份上一节点 index += 1 p = p.next # 当前所需删除的节点s pre.next = p.next # 将上一节点,指向s的下一节点 p = None # 将s节点设置为空,或者删除