python如何实现单链表的反转

Gaia ·
更新时间:2024-09-20
· 927 次阅读

这篇文章主要介绍了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算法题 链表反转详解python实现反转部分单向链表Python3实现的反转单链表算法示例Python实现队列的方法示例小结【数组,链表】python实现从尾到头打印单链表操作示例Python实现栈的方法详解【基于数组和单链表两种方法】Python栈的实现方法示例【列表、单链表】Python双链表原理与实现方法详解python中的函数递归和迭代原理解析Python实现链表反转的方法分析【迭代法与递归法】



反转 单链表 链表 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号