当前位置: 首页 > news >正文

链表相关——Python实现

一、链表的创建及数据插入

示例代码:

#1.定义一个结点类
class ListNode():def __init__(self,x,next=None):self.val=xself.next=next
#2.定义单链表
class LinkList():#2.1 创建一个头指针为空的链表def __init__(self,head=None):self.head=None#2.2 将数据插入链表(最后返回链表的头指针)def initList(self,data):#2.3 创建头结点self.head=ListNode(data[0])r=self.headp=self.head#2.4 逐个为data内的数据创建结点,建立链表for i in data[1:]:node=ListNode(i)p.next=nodep=p.nextreturn rdef printList(self,head):if not head:return []node=headwhile node:print(node.val,end='\t')node=node.nextprint()if __name__ == '__main__':l=LinkList()tup1=(1,2,3,4,5)lst1=[6,7,8,9,10]l1=l.initList(tup1)l2=l.initList(lst1)l.printList(l1)l.printList(l2)

运行结果:

二、链表反转

#集合添加元素
# s={1,2,3}  1->2->3  3->2->1
# s.add(4)
# print(s)
class ListNode():def __init__(self,x):self.val=xself.next=None
class Solution():def ReverseList(self,head:ListNode)->ListNode:#处理空链表if not head:return Nonecur=headpre=Nonewhile cur:#断开链表,要记录后续一个temp=cur.next#当前的next指向前一个cur.next=prepre=curcur=tempreturn pre

三、合并两个有序链表

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param pHead1 ListNode类 
# @param pHead2 ListNode类 
# @return ListNode类
#
class Solution:def Merge(self , pHead1: ListNode, pHead2: ListNode) -> ListNode:# write code herecur0=cur=ListNode(12)while pHead1 and pHead2:if pHead1.val<pHead2.val:cur.next=pHead1pHead1=pHead1.nextcur=cur.nextelse:cur.next=pHead2pHead2=pHead2.nextcur=cur.nextcur.next=pHead1 or pHead2return cur0.next

相关文章:

  • 二进制、高位低位、位移操作与进制转换全解
  • 汽车行业EDI教程——北美X12标准 AS2连接配置与实现
  • 晶振PCB设计核心要点与规范
  • nigx屏蔽无用爬虫
  • 如何实现Redis和Mysql中数据双写一致性
  • 什么是设备管理?设备管理核心功能是什么?
  • 30分钟上架鸿蒙原生应用,即时通信IM UI组件库全面适配HarmonyOS 原
  • 任意波形发生器——2路同步DA模拟量输出卡
  • ASP.NET MVC​ 入门指南四
  • Python爬虫实战:获取软科网最新特定专业大学排名数据并做分析,为高考填报志愿做参考
  • 解决Ubuntu20.04重启出现显卡驱动异常的问题(操作记录)
  • JLink,程序烧写流程、步骤
  • AI大模型学习十三、白嫖腾讯Cloud Studio AI环境 通过Ollama+Dify+DeepSeek构建生成式 AI 应用-安装
  • 漫反射实现+逐像素漫反射+逐像素漫反射实现
  • Miniconda Windows10版本下载和安装
  • 通过深度学习推进增材制造:当前进展与未来挑战综述
  • 项目管理 - 1.Maven
  • Windows 图形显示驱动-待机休眠优化
  • Java SE(4)——方法详解
  • 如何使用极狐GitLab 议题看板?
  • 我国将开展市场准入壁垒清理整治行动
  • 杭州银行一季度净赚超60亿增逾17%,增速较去年同期有所回落
  • 玉渊谭天丨中方减少美国农产品进口后,舟山港陆续出现巴西大豆船
  • 只在上海!德国剧团新作亚洲首演:一张古典与流行的声音网络
  • 涉李小龙形象商标被判定无效,真功夫:暂无更换计划
  • 准“90后”山西壶关县委常委、副县长高雅亭赴北京密云挂职