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实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
python实现ping的方法
Jul 06 Python
Python的Django框架中的表单处理示例
Jul 17 Python
判断网页编码的方法python版
Aug 12 Python
python:socket传输大文件示例
Jan 18 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
Django与JS交互的示例代码
Aug 23 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
Jun 11 Python
Python3中详解fabfile的编写
Jun 24 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
Python3.8中使用f-strings调试
May 22 Python
Python enumerate() 函数如何实现索引功能
Jun 29 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 的 __FILE__ 常量
2007/01/15 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
javascript document.images实例
2008/05/27 Javascript
几个有趣的Javascript Hack
2010/07/24 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
python发布模块的步骤分享
2014/02/21 Python
python解析xml文件操作实例
2014/10/05 Python
Python中使用dom模块生成XML文件示例
2015/04/05 Python
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
python实现接口并发测试脚本
2019/06/25 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
毕业生求职信的经典写法
2014/01/31 职场文书
给老师的一封建议书
2014/03/13 职场文书
洗发水广告词
2014/03/13 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
nginx请求限制配置方法
2021/07/09 Servers
JavaScript函数柯里化
2021/11/07 Javascript