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简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
Python选课系统开发程序
Sep 02 Python
基于并发服务器几种实现方法(总结)
Dec 29 Python
查看django版本的方法分享
May 14 Python
快速解决PyCharm无法引用matplotlib的问题
May 24 Python
python获取命令行输入参数列表的实例代码
Jun 23 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
Apr 05 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
Apr 15 Python
Python中的tkinter库简单案例详解
Jan 22 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
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
php strcmp使用说明
2010/04/22 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
js document.write()使用介绍
2014/02/21 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
将字典转换为DataFrame并进行频次统计的方法
2018/04/08 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
python3.6数独问题的解决
2019/01/21 Python
Python线程之定位与销毁的实现
2019/02/17 Python
Python 函数返回值的示例代码
2019/03/11 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
关于Java String的一道面试题
2013/09/29 面试题
因身体原因离职的辞职信范文
2015/05/12 职场文书
美容院管理规章制度
2015/08/05 职场文书