单链表:

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节点设置为空,或者删除

 

posted on 2020-02-25 17:21  jaysonteng  阅读(696)  评论(0编辑  收藏  举报