python递归反转列表,单链表反转python

  python递归反转列表,单链表反转python

  本文主要介绍python递归实现链表的快速反转。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  本文分享python递归实现链表快速求逆的具体代码,供大家参考。具体内容如下

  案例:实现下面的链表进行倒排

  源代码:

  Node用于表示队列中的一个节点;它包含两个域。

  表示val节点的值。

  Next指向下一个节点

  #定义链表的数据结构

  类别节点:

  def __init__(self,val):

  self.next=无

  self.val=val

  Classutility3360 #为操作生成一个链表。

  def __init__(self):

  self.head=无

  self.tail=无

  及格

  def createList(self,nodeNum):

  如果节点号=0:

  不返回

  head=无

  val=0

  节点=无

  而节点号0:

  #如果头指针为空,代码首先构造队列头;如果没有,则代码构造节点对象,然后用前一个节点的下一个指针指向当前节点,从而将多个节点串联成一个队列。

  如果磁头不是:

  头=节点(val)

  节点=头部

  else:

  node.next=Node(val)

  node=node.next

  self.tail=node

  val=1

  nodeNum -=1

  self.head=头

  回程头

  定义打印列表(自身,头部):

  虽然头不是非我:

  打印(“{0}-”。format(head.val),end= )

  头=头。下一个

  打印(空)

  类别ListReverse:

  def __init__(self,head):

  self.listHead=head

  self.newHead=None

  def recursiveReverse(self,node):

  #如果队列为空或只有一个节点,则队列已被反转。

  如果node为None或node.next为None:

  self.newHead=node

  返回节点

  如果队列包含多个节点,那么通过递归调用反转当前节点之后的所有节点。

  然后将当前节点后的节点的下一个指针指向自己,从而完成整个列表中所有节点的事业。

  head=self . recursive reverse(node . next)

  head.next=node

  node.next=无

  返回节点

  def getReverseList(self):

  ListHead是原始队列的头节点。执行recursiveReverse后,newHead指向新列表的头节点。它

  对应的其实是原列表的尾节点,头指向新列表的尾节点。

  self . recursive reverse(self . list head)

  回归自我

  utility=ListUtility()

  head=utility.createList(10)

  utility.printList(head)

  #执行反向算法,然后再次打印队列,前后对比,看结果是否成功。

  reverse=ListReverse(头)

  utility . print list(reverse . getreverse list())

  运行结果:

  这就是本文的全部内容。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: