首页 > 编程知识 正文

单向链表反转java实现,python怎么创建单链表

时间:2023-05-06 01:47:52 阅读:33495 作者:4539

代码如下。

classnode(object ) :def__init_ ) self,elem, next _=none (: self.elem=elem self.next=next _ defreverselist (head ) : if head==noneorhead.next==non 2pre=head#3head=next# 4returnpreif__name_=='__ () ) ) ) 65链表3-2-1-9-noneL1.next=node(2) L1.next (2) elem,l.next.next.next.elem ) http://www.Sina.com/http://www.Sina.com

步骤next=head.next

将head.next指派给next变量。 也就是说,next指向节点2,然后保存节点2。

步骤head.next=pre (初始pre==None ) )。

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

步骤pre=head

head被分配给pre。 也就是说,pre指向节点1,并将节点1设置为“上一个节点”

步骤head=next

将next分配给head时,head指向节点2,节点2设置为“头部节点”

————————————————————————————————————————

第一个循环完成,进入第二个循环,如下图所示。

步骤next=head.next

将head.next赋值给next变量。 也就是说,next指向节点3,然后保存节点3。

步骤head.next=pre (此时的pre不再是None ) )。

将pre代入head.next中,当pre在上次循环中指定了节点1时,这一步骤意味着节点2指定节点1,完成第1和第2节点的反转。

步骤pre=head

head被分配给pre。 也就是说,pre指向节点2,并将节点2设置为“上一个节点”

步骤head=next

将next分配给头。 也就是说,head指向节点3。 在这种情况下,节点3被设置为“头部节点”

第二个循环结束了。 我用这个类推! 第三次、第四次、第五次循环。 最后翻转为下图

——33543354————————3——33——33——33——3——3——333——333333——3333333333——333333333——333333——33333——333——333——3——354——33——

)1)帮助内存映射:

)2)必须保存当前头节点的下一个节点) (例如,当前头节点为2,先保存节点3 )。

(3)实现逆转的key point: head.next=pre

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。