python单链表的基本操作思路

单链表:

1、定义链表

class ListNode:  # 定义节点
    def __init__(self, x):
        self.val = x  # 节点当前值
        self.next = None  # 指向的下一节点,None表示没有下一节点

2、插入数据

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 单链表的插入(在第 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节点设置为空,或者删除

猜你喜欢

转载自blog.csdn.net/sinat_38682860/article/details/107694157