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 27 Python
python编程实现希尔排序
Apr 13 Python
python实现音乐下载的统计
Jun 20 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
Python 微信之获取好友昵称并制作wordcloud的实例
Feb 21 Python
python日志logging模块使用方法分析
May 23 Python
python networkx 包绘制复杂网络关系图的实现
Jul 10 Python
python 变量初始化空列表的例子
Nov 28 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
使用TensorFlow对图像进行随机旋转的实现示例
Jan 20 Python
Python json转字典字符方法实例解析
Apr 13 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 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中time(),date(),mktime()区别介绍
2013/09/28 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
Django中的Signal代码详解
2018/02/05 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
基于python实现对文件进行切分行
2020/04/26 Python
Python 列表反转显示的四种方法
2020/11/16 Python
python实现控制台输出颜色
2021/03/02 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
电子邮箱格式怎么写
2014/01/12 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
环境建设实施方案
2014/03/14 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
预备党员入党感言
2015/08/01 职场文书
三八节祝酒词
2015/08/11 职场文书
pytorch中[..., 0]的用法说明
2021/05/20 Python
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python