python如何实现单链表的反转

 更新时间:2020年02月10日 10:52:45   作者:xushukui  
这篇文章主要介绍了python如何实现单链表的反转,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了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实现字典(dict)的迭代操作示例

    Python实现字典(dict)的迭代操作示例

    这篇文章主要介绍了Python实现字典(dict)的迭代操作,结合实例形式分析了Python针对字典键、值以及键值对等迭代操作实现技巧,需要的朋友可以参考下
    2018-06-06
  • python 如何调用远程接口

    python 如何调用远程接口

    这篇文章主要介绍了python 如何调用远程接口,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • python基础教程之缩进介绍

    python基础教程之缩进介绍

    这篇文章主要介绍了python基础教程之缩进介绍,本文以if语句为例讲解python中的缩进,需要的朋友可以参考下
    2014-08-08
  • python爬虫之代理ip正确使用方法实例

    python爬虫之代理ip正确使用方法实例

    在爬虫的过程中,我们经常会遇见很多网站采取了防爬虫技术,或者说因为自己采集网站信息的强度和采集速度太大,给对方服务器带去了太多的压力,下面这篇文章主要给大家介绍了关于python爬虫之代理ip正确使用方法的相关资料,需要的朋友可以参考下
    2022-07-07
  • 详解如何用OpenCV + Python 实现人脸识别

    详解如何用OpenCV + Python 实现人脸识别

    这篇文章主要介绍了详解如何用OpenCV + Python 实现人脸识别,非常具有实用价值,需要的朋友可以参考下
    2017-10-10
  • 使用Python脚本和ADB命令实现卸载App

    使用Python脚本和ADB命令实现卸载App

    这篇文章主要介绍了使用Python脚本和ADB命令实现卸载App的实现方法,文中给出了完整的示例代码,相信对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。
    2017-02-02
  • python实现kNN算法

    python实现kNN算法

    这篇文章主要为大家详细介绍了python实现kNN算法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Python使用pynlpir进行中文分词并保留段落信息

    Python使用pynlpir进行中文分词并保留段落信息

    nlpir是由张华平博士开发的中文自然处理工具,可以对中文文本进行分词、聚类分析等,本文主要介绍了使用pynlpir进行中文分词并保留段落信息的具体方法,希望对大家有所帮助
    2024-03-03
  • 关于Django框架的关系模型序列化和一对多关系中的序列化解析

    关于Django框架的关系模型序列化和一对多关系中的序列化解析

    序列化的意思是把字典的形式转化成Json格式。当我们展示数据的时候需要使用,反序列化的话,就是Json转成字典形式,存储数据时候使用,需要的朋友可以参考下
    2023-05-05
  • python使用pil生成图片验证码的方法

    python使用pil生成图片验证码的方法

    这篇文章主要介绍了python使用pil生成图片验证码的方法,涉及Python操作Image,ImageDraw,ImageFont等模块的相关技巧,需要的朋友可以参考下
    2015-05-05

最新评论