python单链表元素反转有几种实现方法
Admin 2022-09-14 群英技术资讯 1017 次浏览
这篇主要是介绍“python单链表元素反转有几种实现方法”的内容了,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家解决python单链表元素反转有几种实现方法的问题,下面我们一起来了解看看吧。给定一个单链表,将其反转。其实很容易想到,只需要修改每个结点的指针指向:即令后一个结点指向前一个结点,并且将表头指针指向最后一个结点即可。

这个过程可以用循环实现,也可以用递归来实现。
1、用循环来实现:
class LNode: def __init__(self, elem): self.elem = elem self.pnext = None def reverse(head): if head is None or head.pnext is None: #如果输入的链表是空或者只有一个结点,直接返回当前结点 return head pre = None #用来指向上一个结点 cur = newhead = head #cur是当前的结点。newhead指向当前新的头结点 while cur: newhead = cur temp = cur.pnext cur.pnext = pre #将当前的结点的指针指向前一个结点 pre = cur cur = temp return newhead if __name__=="__main__": head = LNode(1) p1 = LNode(2) p2 = LNode(3) head.pnext = p1 p1.pnext = p2 p = reverse(head) while p: print(p.elem) p = p.pnext
2、用递归来实现:
class LNode: def __init__(self, elem): self.elem = elem self.pnext = None def reverse(head): if not head or not head.pnext: return head else: newhead = reverse(head.pnext) head.pnext.pnext = head #令下一个结点的指针指向当前结点 head.pnext = None #断开当前结点与下一个结点之间的指针指向联系,令其指向空 return newhead if __name__=="__main__": head = LNode(1) p1 = LNode(2) p2 = LNode(3) head.pnext = p1 p1.pnext = p2 p = reverse(head) while p: print(p.elem) p = p.pnext
以下是图解递归的详细过程:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库。那么Python爬虫中urllib3与urllib的区别是什么,本文就详细的来介绍一下
这篇文章主要给大家分享的是Python十大特性,Python 编程语言是世界上发展最快的编程语言。这一高级通用编程语言提供了广泛的实际应用,并且是一种非常流行的认证,下面我们就来看看它都有哪些特性吧
一些朋友想要知道怎样提取视频中的音频,其实我们能使用Python来实现。本文就给大家分享Python提取视频中的音频的操作流程,供大家参考,感兴趣的朋友可以了解看看。
集合(set)是一个无序的不重复元素序列。因此在每次运行的时候集合的运行结果的内容都是相同的,但元素的排列顺序却不是固定的,所以本章中部分案例的运行结果会出现与给出结果不同的情况(运行结果不唯一)可以使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典
本文实例为大家分享了python绘制直方图的具体代码,供大家参考,具体内容如下运行结果如下代码如下from matplotlib import pyplot as pltif __name__ == "__main__": a =
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008