【如何实现python中的链表反转?Python实现链表反转的方法是什么?】本篇内容主要讲解“如何实现python中的链表反转?Python实现链表反转的方法是什么?”,感兴趣的小伙伴可以来看看 。本篇文章介绍的方法操作简单快捷,实用性强 。下面就让我来带大家学习“如何实现python中的链表反转?Python实现链表反转的方法是什么?”吧!
文章插图
Python实现链表反转这里给大家介绍两种方法
1、使用迭代器进行链表反转
使用while迭代器进行链表的反转,下面给大家举个实例进行讲解
案例1:
class Node(object):def __init__(self, value=https://www.ycpai.cn/python/None, next=None):self.value = value self.next = next @staticmethod def reverse(head):hh = head # 当前节点 new_hh = None # 表示反转后的链表while hh != None:ZH = hh.next # hh后续节点传递给中间变量 hh.next = new_hh # hh指向new_hh new_hh = hh # 反转链表更新,hh为新的头结点 hh = ZH # 原链表节点后移一位 return new_hh link = Node(1, Node(2, Node(3, Node(4, Node(5, Node(6, Node(7, Node(8)))))))) root = Node.reverse(link) while root:print(root.value) root =root.next在上述代码中,进行链表的反转,我们需要引入一个变量,我们这里用的是变量hh,它表示的是一个当前节点,同时还引入第二个变量叫new_hh表示进行反转之后的新列表,while中的变量ZH是为了防止数据丢失而进行存放当前节点的后面一个节点 。第一步就是把当前节点的后面一个连着的节点传给中间变量ZH,新链表new_hh用来指向当前节点,现在已经指向新的列表了new_hh,当前节点已经是hh,再将中间变量ZH传递给hh,进行新的循环,最后循环结束后返回 new_hh 。
运行结果:
876543212、使用递归方法实现链表反转
递归实现链表的反转与while实现又有很大的区别,关于新列表的头部节点的不同,下面给大家举个实例来看看它两的区别在哪 。
案例:
def reverse2(head): if head.next == None: # 递归停止的基线条件 return head new_hh = reverse2(head.next) head.next.next = head # 当前层函数的head节点的后续节点指向当前head节点 head.next = None # 当前head节点指向None return new_hh在上述递归方法实现链表反转中,我们发现一开始它就与while不同,它是先找一个新链表的头部节点,使用递归方法再一步一步进行反转执行函数体中的其他代码,如何将原来的节点指向末尾的前置节点,依次重复 。
有关“如何实现python中的链表反转?Python实现链表反转的方法是什么?”的内容就讲到这里啦,相信大家对“如何实现python中的链表反转?Python实现链表反转的方法是什么?”有了更深的了解,不妨来实际操作一番吧!
推荐阅读
- 如何用Python代码实现词云?python实现词云的方法有哪些?
- 如何安装python框架?windows安装python框架的方法
- Python中bytes是什么意思?Python字节类要怎么使用
- Python中的condition如何使用?python中condition条件变量的使用方法有哪些?
- python如何解决程序运行完就关闭?python运行完不关闭窗口的解决方法
- Python时间日期如何转换?Python时间日期转换的方法技巧
- 如何使用ppt设计简洁的爱心标志 使用ppt设计简洁的爱心标志的教程
- 如何使用ppt制作创意的学校组织结构图 使用ppt制作创意的学校组织结构图的方法
- WPS如何设置行间距?
- WPS如何添加自定义字典?