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 集合(set)类型的操作——并交差
Jun 30 Python
Python中支持向量机SVM的使用方法详解
Dec 26 Python
Python机器学习logistic回归代码解析
Jan 17 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
python实现各种插值法(数值分析)
Jul 30 Python
python将字符串转变成dict格式的实现
Nov 18 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
Apr 24 Python
浅谈Python中的生成器和迭代器
Jun 19 Python
Django+Django-Celery+Celery的整合实战
Jan 20 Python
Python中Pyspider爬虫框架的基本使用详解
Jan 27 Python
利用Python实现最小二乘法与梯度下降算法
Feb 21 Python
Python日志模块logging用法
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 PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
一段实用的php验证码函数
2016/05/19 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
代码分析Python地图坐标转换
2018/02/08 Python
如何用python整理附件
2018/05/13 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
使用python实现滑动验证码功能
2019/08/05 Python
python实现超市商品销售管理系统
2019/10/25 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
通俗讲解python 装饰器
2020/09/07 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
英国Radley包德国官网:Radley London德国
2019/11/18 全球购物
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
家佳咖啡店创业计划书
2013/12/27 职场文书
上班睡觉检讨书
2014/01/09 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
技术负责人岗位职责
2015/02/10 职场文书
西安导游词
2015/02/12 职场文书