简单介绍python如何实现单向链表及单向链表的反转

Crq
Crq
管理员
1492
文章
0
粉丝
Linux教程评论439字数 311阅读1分2秒阅读模式
摘要这篇文章主要介绍了python如何实现单向链表及单向链表的反转,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
链表的定义

链表中的每个节点会存储相邻节点的位置信息,单链表中的每个节点只存储下一关节点的位置信息

简单介绍python如何实现单向链表及单向链表的反转

单向链表的实现
class ListNode:
def __init__(self, val):
self.val = val
self.next = None

要实现单向链表只需要把几个节点关联起来就可以了,把一个节点的next设置为另一个节点就可以了,例如创建一个A->B->C 的单向链表可以这么写:

first_node = ListNode("A")
second_node = ListNode("B")
third_node = ListNode("C")
first_node.next = second_node
second_node.next = third_noe

first_node 就是这个链表的表头,他们3个一起组成了一个单向链表

单向链表反转
class Solution:
def reverse(self, head):
prev = None
current = head
while current:
middle, current.next = current.next, prev
prev, current = current, middle
return prev

反转的时候,先实例化Solution对象,然后调用reverse函数把链表的表头first_node 传进去:

solution = Solution()
result = solution.reverse(first_node)

如果你想查看这个链表的内容顺序,可以这样写:

print(result.val, result.next.val, result.next.next.val)

终端输出结果为CBA,符合要求

以上就是python如何实现单向链表及单向链表的反转的详细内容。

weinxin
我的微信
微信号已复制
我的微信
这是我的微信扫一扫
 
Crq
  • 本文由 Crq 发表于2021年5月5日 17:08:09
  • 转载请注明:https://www.cncrq.com/9213.html
Redis内存碎片深入分析 Linux教程

Redis内存碎片深入分析

如果发现Redis存储数据占用的内存比操作系统分配给Redis的内存小很多,但是数据无法保存,那么可能是内存碎片很多。使用info memory​命令查看内存碎片mem_fragm...
什么样的DevOps技能是团队需要的? Linux教程

什么样的DevOps技能是团队需要的?

DevOps这个词被提及的频率越来越高,越来越多的企业开始招聘具有这个头衔的工程师(DevOps),本文介绍在企业的技术团队当中,DevOps这样的一群人扮演着什么样的角色,需要什...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证