Python怎么实现单链表中元素的反转
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要介绍了Python怎么实现单链表中元素的反转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现单链表中元素的反转文章都会有所收获,下面我们一起
千家信息网最后更新 2024年11月11日Python怎么实现单链表中元素的反转
这篇文章主要介绍了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
以下是图解递归的详细过程:
关于"Python怎么实现单链表中元素的反转"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Python怎么实现单链表中元素的反转"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
结点
指向
指针
元素
知识
递归
内容
篇文章
过程
循环
之间
价值
只有
操作简单
文章
易懂
更多
看吧
行业
表头
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
maya 渲染服务器
亿家安互联网科技刘捷
简述软件开发的优缺点
计算机网络技术杂志
百度地图 网站导入数据库
蓝牙设备需要服务器
服务器怎样调试
十大网络安全事件记录表时间
关于网络安全的微网文300字
代理服务器怎样与服务器连接
东莞南城软件开发公司
荒野的呼唤怎么进入好友服务器
e路守护青少年网络安全图片
乐商圈科技依托移动互联网技术
怎样确定服务器的远程端口
网络安全与执法硕士
菏泽分销软件开发产品
什么是区块链网络安全
医用软件开发问题
国家网络安全周天津活动
tp5.0切数据库
仙桃订制软件开发企业
网页服务器安全设置
山东物商集团软件开发
手机app软件开发作品
安徽工控软件开发需要多少钱
青海观堂网络技术有限公司
新购数据库
医用软件开发问题
广东嵌入式软件开发哪家便宜