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的Django框架结合jQuery实现AJAX购物车页面
Apr 11 Python
python魔法方法-自定义序列详解
Jul 21 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 Python
python读取图片并修改格式与大小的方法
Jul 24 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
python web框架 django wsgi原理解析
Aug 20 Python
Python爬取爱奇艺电影信息代码实例
Nov 26 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
python super用法及原理详解
Jan 20 Python
python如何将mat文件转为png
Jul 15 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 中的一些经验积累
2006/10/09 PHP
超级简单的php+mysql留言本源码
2009/11/11 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
iscroll实现下拉刷新功能
2017/07/18 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
基于hashlib模块--加密(详解)
2017/06/21 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
数据库面试要点基本概念
2013/10/31 面试题
会计自我鉴定
2013/11/02 职场文书
区级文明单位申报材料
2014/05/15 职场文书
三方协议书
2015/01/27 职场文书
财务会计求职信范文
2015/03/20 职场文书
学校党支部承诺书
2015/04/30 职场文书
高一军训口号
2015/12/25 职场文书
2019财务转正述职报告
2019/06/27 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL