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排序方法实例分析
Apr 30 Python
浅谈Python中数据解析
May 05 Python
Python max内置函数详细介绍
Nov 17 Python
python numpy格式化打印的实例
May 14 Python
Python字典遍历操作实例小结
Mar 05 Python
Python中调用其他程序的方式详解
Aug 06 Python
python  logging日志打印过程解析
Oct 22 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
python修改微信和支付宝步数的示例代码
Oct 12 Python
python破解同事的压缩包密码
Oct 14 Python
python中str内置函数用法总结
Dec 27 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 XPath对XML文件查找及修改实现代码
2011/07/27 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
PHP最常用的正则表达式
2017/02/13 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
PHP实现的大文件切割与合并功能示例
2018/04/10 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
微信小程序通过一个json实现分享朋友圈图片
2019/09/03 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
python中requests和https使用简单示例
2018/01/18 Python
Python 使用Numpy对矩阵进行转置的方法
2019/01/28 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
python实现飞机大战小游戏
2019/11/08 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
大韩航空官方网站:Korean Air
2017/10/25 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
中国梦的演讲稿
2014/01/08 职场文书
出纳员的岗位职责
2014/02/22 职场文书
学员自我鉴定
2014/03/19 职场文书
农民工工资发放承诺书
2014/03/31 职场文书
大队干部竞选演讲稿
2014/04/28 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
高考升学宴答谢词
2015/01/20 职场文书
在js中修改html body的样式
2021/11/11 Javascript
Python正则表达式中flags参数的实例详解
2022/04/01 Python
使用Apache Camel表达REST服务的方法
2022/06/10 Servers