怎么用python递归实现链表快速倒转
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章主要介绍"怎么用python递归实现链表快速倒转",在日常操作中,相信很多人在怎么用python递归实现链表快速倒转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年02月08日怎么用python递归实现链表快速倒转
这篇文章主要介绍"怎么用python递归实现链表快速倒转",在日常操作中,相信很多人在怎么用python递归实现链表快速倒转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用python递归实现链表快速倒转"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
案例:实现如下链表进行倒转
源代码:
'''Node 用于表示队列中的节点;它包含两个域。val 表示节点的值。next指向下一个节点'''#定义链表的数据结构class Node: def __init__(self,val): self.next = None self.val = valclass ListUtility:#生成一个用来操作的链表 def __init__(self): self.head = None self.tail = None pass def createList(self,nodeNum): if nodeNum <= 0: return None head = Noneval = 0 node = None while nodeNum > 0: #如果head指针为空,代码先构造队列头部,如果不为空,代码构造节点对象,然后用上一个节点的next指针指向当前节点,从而将多个节点串联成队列。 if head is None: head = Node(val) node = head else: node.next = Node(val) node = node.next self.tail = nodeval += 1 nodeNum -= 1 self.head = head return head def printList(self,head): while head is not None: print("{0}->".format(head.val),end = " ") head = head.next print("null") class ListReverse: def __init__(self, head): self.listHead = head self.newHead = None def recursiveReverse(self, node): #如果队列为空或者只有一个节点,那么队列已经倒转完成 if node is None or node.next is None: self.newHead = node return node ''' 如果队列包含多个节点,那么通过递归调用的方式,先把当前节点之后所有节点实现倒转, 然后再把当前节点之后节点的next指针指向自己从而完成整个列表所有节点的导致 ''' head = self.recursiveReverse(node.next) head.next = node node.next = None return node def getReverseList(self): ''' listHead是原队列头节点,执行recursiveReverse后newHead指向新列表的头结点,它 对应的其实是原列表的尾节点,而head指向新列表的尾节点 ''' self.recursiveReverse(self.listHead) return self.newHead utility = ListUtility()head = utility.createList(10)utility.printList(head)#执行倒转算法,然后再次打印队列,前后对比看看导致是否成功reverse = ListReverse(head)utility.printList(reverse.getReverseList())
运行结果:
到此,关于"怎么用python递归实现链表快速倒转"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
节点
队列
递归
指向
学习
指针
代码
多个
更多
帮助
实用
成功
接下来
两个
再次
只有
头部
对象
数据
数据结构
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
IPHONE字体软件开发
软件开发增值优惠政策
ncbi数据库检索步骤
jq异步post获取数据库
专来技术网络安全生态
服务器主板插固态就启动不了
进销存管理数据库设计
南京应用软件开发报价
怎么预防服务器的常见攻击
网络安全密钥水杨酸面膜
数据库表操作的学习理解和收获
完美csgo服务器连接不上
网络安全专委会
hadoop 集群服务器
注册vpn服务器地址
你用什么软件开发游戏
启动服务器进程命令
云存储服务器软件
360访客网络安全吗
网狐服务器搭建
服务器hd红灯亮
风电场做好网络安全防护临时措施
单位网管叫网络技术员
常州手机软件开发定做价格
华中科技大学网络安全学院徐必昂
全国网络安全日是几月几号
河南计算机软件开发费用
MES软件开发工程师笔试
哪里有软件开发认证培训
阿里数据库团队余峰