单向链表的反转 python,Python 列表反转

  单向链表的反转 python,Python 列表反转

  本文主要详细介绍python版本的单链表倒置。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

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

  代码如下:

  类节点(对象):

  def __init__(self,elem,next_=None):

  self.elem=elem

  self.next=next_

  def reverseList(head):

  If head==none或head.next==none : #如果链表为空或只有一个数字,则直接返回。

  回程头

  pre=无

  下一个=无

  而(头!=无):

  next=head.next # 1

  head.next=pre # 2

  pre=标题# 3

  head=下一个# 4

  返回前

  if __name__==__main__:

  L1=节点(3) #建立链表3-2-1-9-无

  l1.next=节点(2)

  l1.next.next=Node(1)

  l1.next.next.next=Node(9)

  l=reverseList(l1)

  print (l.elem,l.next.elem,l.next.next.elem,l . next . next . elem)

  原始单链表:

  反向单链表:

  反演过程如下:

  下一个第一步:

  将head.next赋给下一个变量,即next指向节点2。首先保存节点2。

  第二步:黑德。next=pre(初始pre==None)

  将pre变量赋给head.next,也就是节点1此时指向None。

  第三步:预=头

  Head赋给pre,即pre指向节点1,节点1设置为“前一个节点”

  第四步:海德=下一个

  在head旁边赋值,即head指向节点2,然后将节点2设置为“头节点”

  第一个周期结束后,进入第二个周期,如下图所示:

  下一个第一步:

  将head.next赋给下一个变量,即next指向节点3。首先保存节点3。

  第二步:黑德。next=pre(此时,pre不再是None)

  将pre赋给head.next,pre在上一个周期指向了节点1,所以这一步的意义在于节点2指向了节点1,完成了节点1和节点2的反转。

  第三步:预=头

  Head赋给pre,即pre指向节点2,节点2设置为“前一个节点”

  第四步:海德=下一个

  在head旁边赋值,即head指向节点3。此时,节点3被设置为“头节点”

  第二个循环就完成了,以此类推!第三次,第四次,第五次循环。最后,反转到下图

  若干注意点:

  (1)帮助记忆图:

  (2)必须保存当前头节点的下一个节点(例如,如果当前头节点是2,则首先保存节点3)

  (3)关键点: head.next=pre实现反转

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

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

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