python如何实现单链表的反转
作者:xushukui 时间:2023-05-11 12:44:10
这篇文章主要介绍了python如何实现单链表的反转,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
代码如下
# coding=utf-8
class Node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
def Reserver(link):
pre = link
cur = link.next
pre.next = None
while cur:
tmp = cur.next
cur.next = pre
pre = cur
cur = tmp
return pre
if __name__ == "__main__":
node = Node(1, Node(2, Node(3, Node(4, Node(5, Node(6, Node(7, Node(8, Node(9)))))))))
root = Reserver(node)
while root:
print root.data,
root = root.next
解释一下rev函数的实现过程:
line 9-11是将原链表的第一个节点变成了新链表的最后一个节点,同时将原链表的第二个节点保存在cur中
line13-16就是从原链表的第二个节点开始遍历到最后一个节点,将所有节点翻转一遍
以翻转第二个节点为例
temp = cur.next是将cur的下一个节点保存在temp中,也就是第节点3,因为翻转后,节点2的下一个节点变成了节点1,原先节点2和节点3之间的连接断开,通过节点2就找不到节点3了,因此需要保存
cur.next = pre就是将节点2的下一个节点指向了节点1
然后pre向后移动到原先cur的位置,cur也向后移动一个节点,也就是pre = cur ,cur =temp
这就为翻转节点3做好了准备
来源:https://www.cnblogs.com/nyist-xsk/p/11719739.html
标签:python,单链表,反转


猜你喜欢
HTTP提交方式之PUT详细介绍及POST和PUT的区别
2022-08-21 16:23:44
Django REST框架创建一个简单的Api实例讲解
2023-04-28 01:02:40

Python中使用subprocess库创建附加进程
2022-01-01 06:30:25

python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2023-06-14 06:23:07
javascript 获取中文字符串长度
2009-10-18 12:06:00
mysql日志文件General_log和Binlog开启及详解
2024-01-17 08:20:44

ASP中取得图片宽度和高度的类
2008-10-29 12:38:00
python解决Fedora解压zip时中文乱码的方法
2021-06-02 09:23:09
Python实现直播推流效果
2023-10-06 12:43:29

Django查找网站项目根目录和对正则表达式的支持
2023-04-09 15:50:37

python网络爬虫实战
2021-04-16 13:31:07

golang切片原理详细解析
2024-04-29 13:06:35
Python Mysql数据库操作 Perl操作Mysql数据库
2024-01-20 11:07:43
asp数组使用特法
2009-05-11 12:43:00
python的time模块和datetime模块实例解析
2023-11-13 09:54:56
Python批量生成幻影坦克图片实例代码
2021-04-17 03:16:17

python获取点击的坐标画图形的方法
2023-04-23 09:59:28
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2023-07-21 16:21:41

Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2022-01-05 22:02:07

分享下GET和POST的真正区别
2023-10-19 23:23:09