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