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连接mongodb操作数据示例(mongodb数据库配置类)
Dec 31 Python
Python的Tornado框架异步编程入门实例
Apr 24 Python
Python环境变量设置方法
Aug 28 Python
python2 与python3的print区别小结
Jan 16 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
用python写一个定时提醒程序的实现代码
Jul 22 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
django orm模块中的 is_delete用法
May 20 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
python实现图像随机裁剪的示例代码
Dec 10 Python
python 利用百度API识别图片文字(多线程版)
Dec 14 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页面编码的两种方法示例介绍
2014/03/03 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
2016/10/19 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
使用Python实现音频双通道分离
2020/12/25 Python
HTML5 Canvas入门学习教程
2016/03/17 HTML / CSS
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
温泉秘密:Onsen Secret
2020/07/06 全球购物
数学系个人求职信范文
2014/01/30 职场文书
新书吧创业计划书
2014/01/31 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
离婚案件被告代理词
2015/05/23 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android