python递归反转列表,python递归函数反转序列

  python递归反转列表,python递归函数反转序列

  本文主要介绍用python递归迭代的方法实现链表倒置。文章分享了详细的实现代码,有需要的朋友可以参考一下。希望对你的学习或者工作有帮助。

  定义链表node结构:

  类别列表节点:

  def __init__(self,data):

  self.data=数据

  self.next=无

  将L转化为链表:

  定义生成列表(L):

  将L初始化为链表:

  head=ListNode(L[0])

  cur=head

  为我在L[1:]:

  cur.next=ListNode(i)

  下一个

  回程头

  遍历链表:

  定义打印列表(表头):

  cur=head

  一边诅咒!=无:

  print(cur.data,end= )

  下一个

  递归法 反转链表:

  定义反向列表(表头):

  三要素:

  1.明确函数,可以反转链表,返回一个头节点。2.结束条件:如果head==none或head。当链表为空或者只有一个节点时,返回next==none 3360。

  回程头

  3.等效条件(缩小范围)。对于数组,缩小的范围是n——n-1,对于链表,可以考虑head——head.next。

  Reverse=reverse _ list(head . next)#假设reverse是头之后已经被反转的链表。

  接下来要做的是将head节点接到已经反转过的reverse上:

  tmp=head.next

  tmp.next=头

  head.next=无

  Return reverse #返回新列表

  迭代法:

  def reverse_list2(表头):

  #print_list(表头)

  cur=head

  pre=无

  而cur:

  tmp=cur.next

  cur.next=pre

  前=当前

  当前=tmp

  头=前

  回程头

  if __name__==__main__:

  L=[3,2,7,8]

  head=make_list(L)

  正序打印:

  打印(原始列表:)

  打印_列表(表头)

  打印( \n )

  反转后打印:

  revere=reverse_list(头)

  打印(列表反转一次:)

  打印列表(反向)

  打印( \n )

  反转2:

  打印(“头是”)

  Print_list(head) #发现此时head节点成为最后一个节点,说明函数直接作用于head的这个实例。

  打印( \n )

  # print(revere is )

  #打印列表(回复)

  # print(\n )

  打印(列表反转两次:)

  print _ list(reverse _ list 2(rever))

  以上就是本文关于python递归迭代方法实现链表求逆的内容。关于python链表倒排的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

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

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