python如何实现单链表的反转


Posted in Python onFebruary 10, 2020

这篇文章主要介绍了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做好了准备

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
numpy中的delete删除数组整行和整列的实例
May 09 Python
python绘制立方体的方法
Jul 02 Python
python进行TCP端口扫描的实现
Dec 21 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
Jan 17 Python
python3.4爬虫demo
Jan 22 Python
详解python做UI界面的方法
Feb 27 Python
django+tornado实现实时查看远程日志的方法
Aug 12 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 Python
Python如何实现远程方法调用
Aug 07 Python
Python自动创建Excel并获取内容
Sep 16 Python
python元组打包和解包过程详解
Aug 02 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 05 Python
基于python求两个列表的并集.交集.差集
Feb 10 #Python
python实现串口通信的示例代码
Feb 10 #Python
基于Tensorflow高阶读写教程
Feb 10 #Python
python集合删除多种方法详解
Feb 10 #Python
pandas中的数据去重处理的实现方法
Feb 10 #Python
对tensorflow中cifar-10文档的Read操作详解
Feb 10 #Python
基于Tensorflow:CPU性能分析
Feb 10 #Python
You might like
php调用KyotoTycoon简单实例
2015/04/02 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
javascript 节点排序 2
2011/01/31 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
详解基于webpack&gettext的前端多语言方案
2019/01/29 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
python编程实现归并排序
2017/04/14 Python
python groupby 函数 as_index详解
2019/12/16 Python
python 类之间的参数传递方式
2019/12/20 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
自考生自我鉴定范文
2013/10/01 职场文书
企业给企业的表扬信
2014/01/13 职场文书
应用化学专业职业生涯规划书
2014/01/22 职场文书
总经理任命书范本
2014/06/05 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
企业介绍信范文
2015/01/30 职场文书
先进个人自荐书
2015/03/06 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
Python初学者必备的文件读写指南
2021/06/23 Python
Python实现为PDF去除水印的示例代码
2022/04/03 Python
Redis特殊数据类型bitmap位图
2022/06/01 Redis
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers