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 相关文章推荐
python抓取网页图片示例(python爬虫)
Apr 27 Python
详解C++编程中一元运算符的重载
Jan 19 Python
Python 实现一个颜色色值转换的小工具
Dec 06 Python
Python中字符串格式化str.format的详细介绍
Feb 17 Python
Numpy数组的保存与读取方法
Apr 04 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
Jun 21 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
python实现自动获取IP并发送到邮箱
Dec 26 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 Python
Python3实现建造者模式的示例代码
Jun 28 Python
Python中的tkinter库简单案例详解
Jan 22 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之XML转数组函数的详解
2013/06/07 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
javascript基本算法汇总
2016/03/09 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
详解angular脏检查原理及伪代码实现
2018/06/08 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
layui表格数据重载
2019/07/27 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
解决Nuxt使用axios跨域问题
2020/07/06 Javascript
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
运行Python编写的程序方法实例
2020/10/21 Python
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
求职简历的自我评价
2014/01/31 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
小学英语听课心得体会
2016/01/14 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏