首页 > 编程语言 >python对单双链表进行操作

python对单双链表进行操作

时间:2023-08-06 23:22:37浏览次数:44  
标签:index val python self 链表 int 双链 对单 def

`class LinkNode:
def init(self,val=0,next=None):
# 定义指针指向节点的数值
self.val = val
# 定义指针
self.next = None
class MyLinkedList:
def init(self):
self.head = LinkNode(0)
self.size = 0
# 获取链表中下标为index的值,如果下标无效,则返回-1
def get(self,index:int)->int:
if 0<=index<=self.size:
cur = self.head
for i in range(index+1):
cur = cur.next
# cur此时就指向get节点
return cur.val
else:
return -1

# 插入一个节点作为这个链表的第一个元素
def addAtHead(self,val:int)->None:
    self.addAtIndex(0,val)

# 追加一个节点作为这个链表的最后一个元素
def addAtTail(self,val:int)->None:
    self.addAtIndex(self.size,val)

# 将一个节点插入index前,若index等于链表长度,则插入到链表最后
# 若index比链表长度还大,该节点不会插入到链表中
def addAtIndex(self,index:int,val:int)->None:
    if index == self.size:
        self.addAtIndex(self.size,val)
        
    if 0 <= index <= self.size:
        cur = self.head
        for _ in range(index):
            cur = cur.next
        val = LinkNode(val=val)
        val.next = cur.next
        cur.next = val
        self.size += 1
        
    if index > self.size:
        return

# 若下标有效,则删除链表中下标为index的节点
def deleteAtIndex(self,index:int)->None:
    if 0 <= index <= self.size:
        cur = self.head
        for _ in range(index):
            cur = cur.next
        cur.next = cur.next.next
        self.size -= 1








`

标签:index,val,python,self,链表,int,双链,对单,def
From: https://www.cnblogs.com/zyKDM/p/17606538.html

相关文章

  • python的class类
    一.简介类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例对象(instance/object):包括两个数据成员(类变量和实例变量)和方法,对象就是方法或者类的具体示例类变量是所有对象共有,其中一个对象的值......
  • 【Python | 进阶】提高你的Python技能,9个让代码更简洁、更快的秘密技巧, 确定不来看看?
    ......
  • cookiecutter python 项目模版工具
    cookiecutterpython项目模版工具,可以帮助我们快速基于模版生成python项目(当然也支持c项目)有不少python项目都是基于此工具的比如dbtadapter开发就基于此提供了方便的adapter生成dbtadapter参考模版 cookiecutter创建项目模版具体可以参考rongfengliang/mynpm-pac......
  • Python文件读取方法:read()、readline()和readlines()的区别
    在Python中,读取文件是一项常见的任务。Python提供了多种方法来读取文件内容,其中包括read()、readline()和readlines()方法。本文将介绍这些方法的区别和使用场景。read()read()方法用于一次性读取整个文件的内容,并将其作为一个字符串返回。语法如下:file_object.read()优点:读取整个......
  • Python魔法解析:探索变量类型的丰富多彩世界!
    在Python这个魔法般的编程语言中,变量是连接你与计算机世界的神奇桥梁。然而,这些变量并不是单一的,它们有着丰富多彩的类型。无论你是刚刚踏入编程的大门,还是想要深入了解Python的高级特性,本篇博客将带你探索变量的不同类型,为你揭开编程世界的神秘面纱。一窥Python变量类型的多样性在......
  • Python logging模块怎么使用,你会了吗?
    Pythonlogging模块使用在开发和维护Python应用程序时,日志记录是一项非常重要的任务。Python提供了内置的logging模块,它可以帮助我们方便地记录应用程序的运行时信息、错误和调试信息。本文将介绍如何使用Pythonlogging模块进行日志记录。logging模块logging是Python自带的用于记......
  • 软件测试|Python科学计算神器numpy教程(二)
    前言上一篇文章我们介绍了numpy的安装和ndarray的部分知识,本篇文章我们来介绍一下numpy的数组的常用属性以及创建数组相关内容。数组常用属性ndarray.shapeshape属性的返回值一个由数组维度构成的元组,比如2行3列的二维数组可以表示为(2,3),该属性可以用来调整数组维度的......
  • 数据量较大时,python 如何加速 matplotlib 的作图
    数据量较大时,python如何加速matplotlib的作图?GeneratedbyChatGPT当数据量较大时,matplotlib可能会变得缓慢。下面是一些可以加速matplotlib作图的方法:使用blitting:blitting是一种将图形上下文缓存到位图中的技术,可以提高图形更新的速度。使用数据抽样:通过对数据进行抽......
  • python基础入门模块
    一、os模块os模块提供了许多与操作系统相关的函数,可以让我们在Python程序中轻松地处理文件和目录、环境变量等等。下面是os模块中常用的方法:os.getcwd()这个函数用于获取当前工作目录,即当前Python脚本工作的目录路径。os.chdir(path)这个函数用于改变当前工作目录到指定的......
  • Python 中整型对象存储的位置
    在Python整型对象所存储的位置是不同的,有一些是预先分配内存的,它一直存储在内存里面,而其它的,则在使用时开辟出空间.说这句话的理由,可以看看如下代码:123456a = 5b = 5a is b # Truea = 500b = 500a is b # False由上面的代码可知,整型5是一直存在的,......