首页 > 编程语言 >python 链表

python 链表

时间:2023-10-12 17:46:56浏览次数:52  
标签:__ python self next 链表 节点 def

from typing import Optional
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

class Solution:
    def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:
        lessListPre = ListNode()  # 小于链表的伪头节点
        noLessListPre = ListNode()  # 不小于链表的伪头节点
        lessNode = lessListPre  # 小于链表当前最后一个节点,初始为伪头节点
        noLessNode = noLessListPre  # 不小于链表当前最后一个节点,初始为伪头节点

        while head:
            if head.val < x:
                # 当前节点值小于x,将当前节点追加到小于链表之后,更新小于链表当前最后一个节点
                lessNode.next = head
                lessNode = lessNode.next
            else:
                # 当前节点值不小于x,将当前节点追加到不小于链表之后,更新不小于链表当前最后一个节点
                noLessNode.next = head
                noLessNode = noLessNode.next
            head = head.next  # 更新当前节点
        noLessNode.next = None  # 不小于链表的最后一个节点为新链表的尾节点,清空其next
        lessNode.next = noLessListPre.next  # 不小于链表拼接到小于链表之后

        return lessListPre.next  # 返回新链表

 



# 定义节点
class Node(object):
    '''
    节点
    '''
    def __init__(self,elem):
        # 一个节点包含两部分 数据和地址
        # 保存节点的数据
        self.elem=elem
        # 保存节点的地址
        self.next=None
    # node=Node(100)
    # node2=Node(400)
    # node3=Node(600)
class SingleLinklist(object):
    '''串联起来各个单节点'''
    def __init__(self,node=None ):
        self._head=node #私有属性
    def is_empty(self):
        '''判断是否为空'''
        pass
    def length(self):
        '''获取长度'''
        pass
    def travel(self):
        '''遍历整个链表'''
        pass
    def add(self,item):
        '''链表头部添加元素'''
        pass
    def append(self,item):
        '''链表尾部添加元素'''
        pass
    def insert(self,pos,item):
        '''指定位置添加元素'''
        pass
    def remove(self,item):
        '''删除元素'''
        pass
    def search(self,item):
        '''查找元素'''
        pass
if __name__ == '__main__':
    # 实例化 单列表对象
    single_obj=SingleLinklist()
    single_obj.is_empty()

 

标签:__,python,self,next,链表,节点,def
From: https://www.cnblogs.com/haha1988/p/17760122.html

相关文章

  • 【Python】FastAPI 使用python3.6+构建API的Web框架
    现代、快速(高性能)的Web框架,用于构建基于Python的 API;基于Starlette和Pydantic库构建而成官网:https://fastapi.tiangolo.com/ 1、安装#对于生产环境,还需要一个ASGI服务器,如Uvicorn或Hypercorn#>pipinstall"uvicorn[standard]"pipinstallfastapipipi......
  • python+playwright 学习-61 Playwright 和 Selenium 的区别是什么?
    前言最近有不少同学问到Playwright和Selenium的区别是什么?有同学可能之前学过selenium了,再学一个playwright感觉有些多余,可能之前有项目已经是selenium写的了,换成playwright需要时间成本,并且可能有未知风险。也有同学之前可能没学过selenium,现在正准备入手一个web......
  • Python - 深拷贝一个带有指向自身引用的列表,会报错么?紧接着用==比较,会报错么?
    问题描述深拷贝一个带有指向自身引用的列表:列表x中有指向自身的引用,因此x是一个无限嵌套的列表。importcopyx=[1]x.append(x)>>x[1,[...]]y=copy.deepcopy(x)>>y[1,[...]] 深拷贝不报错但是我们发现深度拷贝x到y后,程序并没有出现stackoverf......
  • 动物识别系统python+Django网页界面+TensorFlow算法模型+数据集训练
    一、简介动物识别系统。基于Python+TensorFlow+Django网页框架+ResNet50算法模型实现实现步骤如下:收集多种动物的图片数据集,并整理归类然后使用TensorFlow搭建ResNet50算法模型网络对数据集进行多次迭代训练最后得到一个精度较高的H5模型文件基于训练好的模型,使用Django开......
  • Python 列表详解:从基础到进阶
    Python是一种广泛使用的高级编程语言,它的设计强调代码的可读性和简洁的语法。Python支持多种编程范式,包括过程、面向对象和函数式编程。在Python中,列表是一种非常重要的数据类型,它可以包含各种类型的元素,如数字、字符串和其他列表。本文将详细介绍Python列表的基础和进阶用法。【基......
  • python beautifulsoup
    beautifulsoup1.安装pipinstallbeautifulsoup4如果这个安装不了,就手动下载安装:下载地址:https://www.crummy.com/software/BeautifulSoup/bs4/download/4.5/解压后执行pythonsetup.pyinstall拷贝python安装目录下的C:\ProgramFiles\python\Tools\scripts\2to3.py文......
  • python_批量处理excel文件
    情况pipinstallopenpyxlpipinstallxlrd数据Excel文件的格式为xls和xlsx,pandas读取excel文件需要安装依赖库xlrd和openpyxl。!注意:当xlrd>=2.0时,只支持xls格式,不再支持xlsx。数据代码importpandasaspdimportosimportjsonif__name__=="__main__":e......
  • 使用python来对字符编码序列进行互转
    排查字符集问题时,有的时候发生乱码不知道如何生成的字符,此时就需要通过字节序列来判断该字符是什么。已知utf8字节序列时,转换为unicode或者gb18030字节序列:>>>a=b'\xef\xbc\xa1'#此时a是一个bytes对象>>>b=a.decode("utf8")#此时b是一个str对象,内部是unicode的编码字......
  • 【Python&语义分割】Segment Anything(SAM)模型全局语义分割代码+掩膜保存(二)
    ​ 我上篇博文分享了SegmentAnything(SAM)模型的基本操作,这篇给大家分享下官方的整张图片的语义分割代码(全局),同时我还修改了一部分支持掩膜和叠加影像的保存。1SegmentAnything介绍1.1概况        MetaAI公司的SegmentAnything模型是一项革命性的技术,该模型能......
  • python模块之sys模块
    sys.argvsys模块是python解释器交互的一个接口该模块提供对解释器使用或维护的一些变量的访问和获取它提供了许多函数和变量来处理python运行时欢姐的不同部分importsysprint(sys.argv)test=sys.argv[1]iftest=="shawn":print("iamshawn")eliftest=="s......