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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。