Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python 实现单向链表,和单向链表的反转

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
运行
AI代码解释
复制
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
运行
AI代码解释
复制
python 代码解读复制代码solution = Solution()
result = solution.reverse(first_node)

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

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

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

本文系转载,前往查看

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

本文系转载,前往查看

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

评论
登录后参与评论
1 条评论
热度
最新
已关注大佬,是否可以给我这开源项目 https://github.com/youzeliang/rdb 给一个star
已关注大佬,是否可以给我这开源项目 https://github.com/youzeliang/rdb 给一个star
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
单向链表反转
原链表: Head -> 1 -> 2 -> 3 -> 4 -> 5 -> null
一个架构师
2022/06/20
3000
leecode206(反转链表)
https://www.bilibili.com/video/BV1434y1v7mv
武师叔
2022/09/26
1840
leecode206(反转链表)
【LeetCode 热题 100】206. 反转链表
很多初学者会误解输入 head = [1,2,3] 是 Python 列表。其实这是题目的简化表示方式,真正传入 reverseList 函数的是链表结构,如下:
未名编程
2025/05/11
490
Algorithem_ReverseLinkedList
Given the head of a singly linked list, reverse the list, and return the reversed list.
莫空9081
2022/04/23
2090
打卡群刷题总结0802——反转链表 II
方法:得找到第m-1个节点,在翻转m->n链表后,再修改m和m-1位置上节点指针。
木又AI帮
2020/08/04
3200
23张图!万字详解「链表」,从小白到大佬!
链表和数组是数据类型中两个重要又常用的基础数据类型,数组是连续存储在内存中的数据结构,因此它的优势是可以通过下标迅速的找到元素的位置,而它的缺点则是在插入和删除元素时会导致大量元素的被迫移动,为了解决和平衡此问题于是就有了链表这种数据类型。
磊哥
2020/11/06
6160
【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)
通常,这种情况下,我们不希望修改原链表的结构。返回一个反序的链表,这就是经典的“后进先出”,我们可以使用栈实现这种顺序。每经过一个结点的时候,把该结点放到一个栈中。当遍历完整个链表后,再从栈顶开始逐个输出结点的值,给一个新的链表结构,这样链表就实现了反转。
深度学习技术前沿公众号博主
2020/05/18
9170
python 两两交换链表中的节点 多种解法
编程小白狼
2024/12/31
1070
Leetcode 系列 | 反转链表
链接 | https://leetcode.com/problems/reverse-linked-list/
kbsc13
2019/08/19
4510
Leetcode 系列 | 反转链表
两种方法求解链表高频面试题之单链表反转
单链表反转这道题可谓是链表里面的高频问题了,差不多可以说只要被问到链表,就会问单链表反转。 今天我们就一起来看下。
与你一起学算法
2021/03/23
3470
Python 实现反转、合并链表有啥用?
大家好,我是 V 哥。使用 Python 实现反转链表、合并链表在开发中比较常见,我们先来看看各自的应用场景。先赞再看后评论,腰缠万贯财进门。
威哥爱编程
2025/02/19
870
Go:实现单向链表及应用
单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含两个部分:数据域和指针域。数据域用于存储数据,而指针域则指向链表中的下一个节点,这种结构使得链表中的元素可以非连续地存储在内存中,而通过每个节点的指针链接到一起。
运维开发王义杰
2024/04/25
1370
Go:实现单向链表及应用
算法-反转一个单向链表
版权声明: https://blog.csdn.net/li_xunhuan/article/details/89846238
Fisherman渔夫
2019/07/31
3120
[Leetcode][链表]相关题目汇总/分析/总结
题目汇总 以下链接均为我博客内对应博文,有解题思路和代码,不定时更新补充。 目前范围:Leetcode前150题 单链表 Reverse Linked List/Reverse Linked List II 翻转链表(必考) Add Two Numbers 给定两个链表分别代表两个非负整数。数位以倒序存储,并且每一个节点包含一位数字。将两个数字相加并以链表形式返回。 Remove Nth Node From End of List 删除链表中倒数第n个节点 Merge Two Sorted
蛮三刀酱
2019/03/26
8450
【Java-数据结构】Java 链表面试题上 “最后一公里”:解决复杂链表问题的致胜法宝
学无止尽5
2025/01/24
750
【Java-数据结构】Java 链表面试题上 “最后一公里”:解决复杂链表问题的致胜法宝
python K个一组翻转链表 多种解法
编程小白狼
2024/12/31
740
经典算法——单向链表反转
比如有一个链表是这样的,1->2->3->4->5,反转后成为 5->4->3->2->1。请实现函数
恋喵大鲤鱼
2019/06/24
8K0
小白学算法-数据结构和算法教程: 反转链表
给定一个指向链表头节点的指针,任务是反转链表。我们需要通过更改节点之间的链接来反转列表。
用户1418987
2023/10/26
1980
小白学算法-数据结构和算法教程: 反转链表
Python 算法基础篇:链表和双向链表的实现与应用
链表和双向链表是常用的线性数据结构,它们在算法和程序设计中有着广泛的应用。本篇博客将重点介绍链表和双向链表的原理、实现以及它们在不同场景下的应用。我们将使用 Python 来演示链表和双向链表的实现,并通过实例展示每一行代码的运行过程。
小蓝枣
2023/07/25
8310
链表反转,此生相伴
你是否有过这种体会:看别人的代码,当时看得很明白了,但是,过段时间,自己却怎么都写不出来?这是怎么回事,可能我们也清楚。别人的思维你是无法拷贝的,形成之前不具备的思维,刻入骨髓,需要天长日久的思维训练。
double
2019/06/14
5070
相关推荐
单向链表反转
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验