前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Python 实现单向链表,和单向链表的反转

Python 实现单向链表,和单向链表的反转

作者头像
科技新语
发布2025-02-26 15:03:56
发布2025-02-26 15:03:56
2700
代码可运行
举报
运行总次数:0
代码可运行
链表的定义

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

image.png
image.png
单向链表的实现
代码语言:javascript
代码运行次数:0
复制
python 代码解读复制代码class ListNode:
    def __init__(self, val):
        self.val = val
        self.next = None

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

代码语言:javascript
代码运行次数:0
复制
python 代码解读复制代码 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个一起组成了一个单向链表

单向链表反转
代码语言:javascript
代码运行次数:0
复制
python 代码解读复制代码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 传进去:

代码语言:javascript
代码运行次数:0
复制
python 代码解读复制代码solution = Solution()
result = solution.reverse(first_node)

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

代码语言:javascript
代码运行次数:0
复制
python 代码解读复制代码print(result.val, result.next.val, result.next.next.val)

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

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 链表的定义
  • 单向链表的实现
  • 单向链表反转
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档