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 相关文章推荐
使用pyecharts无法import Bar的解决方案
Apr 23 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
Django model序列化为json的方法示例
Oct 16 Python
Python OpenCV利用笔记本摄像头实现人脸检测
Aug 20 Python
python多线程实现TCP服务端
Sep 03 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
简单了解python数组的基本操作
Nov 26 Python
解决tensorflow由于未初始化变量而导致的错误问题
Jan 06 Python
使用Python实现批量ping操作方法
May 06 Python
python字典通过值反查键的实现(简洁写法)
Sep 30 Python
Jupyter notebook 不自动弹出网页的解决方案
May 21 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
PHP的单引号和双引号 字符串效率
2009/05/27 PHP
php 文章采集正则代码
2009/12/28 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
python中的字典详细介绍
2014/09/18 Python
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
Python any()函数的使用方法
2019/10/28 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
考试作弊被抓检讨书
2014/01/10 职场文书
小学少先队活动方案
2014/02/18 职场文书
财务主管岗位职责
2014/02/28 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
仓库管理计划书
2014/05/04 职场文书
贷款委托书
2014/08/01 职场文书
转正申请报告格式
2015/05/15 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技