python 反转节点 Leetcode No.24

链表-LeetCode24. 两两交换链表中的节点(Python) ''' 给定 1->2->3->4, 你应该返回 2->1->4->3. 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 ''' class ListNode(object): def __init__(self, x): self.val = x self.next = None class Solution(object): def swapPairs(self, head): """ :type head: ListNode 立即下载

Swap nodes in pairs


大概题意就是两两相邻节点进行反转,但是如果是给的是5个节点的话,那么最后一个节点是不变的,注意这一点。

思路非常简单,但是主要考察的是代码实现能力。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def swapPairs(self, head: ListNode) -> ListNode:
    #pre=self相当于创建了一个节点,让这个pre的next = head,可以换成下面的写法
    #phead =ListNode(None)
    #pre, pre.next = pHead, head
    #中间不变,return pHead.next
        pre, pre.next = self, head
        while pre.next and pre.next.next:
            a = pre.next
            b = a.next
            #Python连续赋值需要注意的点,是把右边的变量一次性赋值给左边的,只一句执行之后
            #self.next指向了2的这个节点,也就是新的头指针。
            pre.next, b.next, a.next = b, a, b.next
           	#执行下面一段语句之后,pre.next再怎么改变也不影响self的指向。
            pre = a 
        return self.next
ESP32 驱动 SYN6288 语音合成:Arduino IDE 下实现中文数字混合文本的智能播报 本文详细介绍了如何在Arduino IDE环境下使用ESP32驱动SYN6288语音合成模块,实现中文数字混合文本的智能播报。通过硬件选型、开发环境搭建、编码转换原理、命令帧构造及串口通信实战等步骤,帮助开发者快速掌握语音播报技术。文章还提供了混合文本处理技巧和常见问题排查方法,适合智能硬件开发者参考。 阅读详情

相关推荐

电源完整性必看!用SIwave提取PDN阻抗曲线的3个关键设置与常见报错解决

本文深入探讨了在SIwave中进行电源完整性(PI)仿真时,提取PDN阻抗曲线的三个核心设置要点。重点解析了端口阻抗设为0.1欧姆的物理意义与SYZ参数仿真中的阻抗匹配原则,并提供了针对常见收敛性问题和模型误差的实战排查思路,旨在帮助工程师获得更精确可靠的仿真结果,为去耦电容优化提供依据。

b9c0d的博客 352

C语言实现单链表的翻转

typedef struct node_s{ int item; struct node_s* next; }node_t; node_t* reverse_list(node_t* head) { node_t* n=head; head=NULL; while(n){ node_t* m=m; n=n->next; ...

疯狂的1024 1万+

deepseek本地部署及应用部署指南

如果你找到的日志是[send] via NET/IB/0,则表示网络通信是通过IB网络的,但是没有开启GDRDMA技术,则会有大致5%的性能损耗(网传,未实测)。新增的环境变量配置,主要用于启用IB网络通信,而非使用以太网进行通信,详细的每一个参数的具体含义,可以在英伟达NCCL的官方网站上找到说明。下一步,我会对已经完成部署的模型进行压测,来探索系统的性能极限在哪里,以及如何在生产环境中何如进行进一步的性能优化,期待你的关注。

weixin_39797121的博客 2624

反转链表问题全解析(一篇拿下)

反转链表问题全解析(一篇拿下) 0.理解下述代码 r = q->next; q->next = p; p = q; q = r; 让2指向1,只需p指向1,q指向2(建议自己模拟一下上述代码) 1.反转链表(对照代码模拟0.样例就明白了) 题目链接:反转链表 递归版本 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL)

qq_43231687的博客 218

风二西CTF流量题大集合-刷题笔记|基础题(1)

部分题目已包含脚本和解题视频,但更建议自行分析和手搓脚本。

zerorzeror的博客 2765

深信服PT1-AF实验考试

深信服PT1-AF实验考试实验练习可以去深信服的在线实验平台(链接如下):深信服在线实验平台 (sangfor.com.cn)实验考试其实就是把所有的每一部分实验综合了起来以下内容仅做参考,不确保一样。

m0_72019240的博客 7116

leetcode_24_两两交换链表中的节点_python_图解

1图解 2 代码及分析 # 24. 两两交换链表中的节点 class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next # 本题设置pre,cur和post的概念,本质上是准备将cur和post交换,所以添加virtual头节点本意也就是将第一个元素作为cur和第二个元素post交换 class Solution: def swapPairs(

chengzz618的博客 996

Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈

Titans 是谷歌推出的新型神经网络架构,通过神经长期记忆模块突破 Transformer 在处理长序列数据时的瓶颈,支持并行计算,显著提升训练效率。

士多啤梨先生の博客 991

(Python)LeetCode 24:两两交换链表中的节点

题目: 思路: 这个题目其实不难,但是我还是写了好久,思路清晰但是到了写代码还是有逻辑写错了,,所以折腾了好久。 思路其实是这样的,我们需要两个指针,分别设为p1 和 p2,这里我另外新建了一个结点,后面接交换过后的结点,这样就省去了考虑头结点head可能会丢失的问题,并且head指针应该是每次会向后移动2次,也就是p2结点的后一个结点;然后就是p1和p2指针的变化了,这里有一个要注意的问题,要避免指针循环像对方(类似于循环链表),并且当p1指向p2的下一个结点的时候要注意p2后是否还有结点,没有

weixin_44260459的博客 578

基于Django+Vue3的目标检测系统设计与实现,Web前后端分离,Vue3前台系统+Django后台管理系统开发,YOLOv11 Web目标检测,实现图片、视频和摄像头检测等功能,全网独发

基于Django+Vue3的智能目标检测系统设计与实现,Web前后端分离,YOLOv11 Web目标检测,Vue3前台系统+Django后台管理系统开发,实现图片检测、视频检测、摄像头检测、登录、注册和个人中心功能

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 3668

【AI技术赋能有限元分析应用实践】Abaqus有限元分析与深度学习结合20个案例与有限元分析数据来源方法说明

结合 Abaqus 和深度学习,数据的获取和处理是关键的一步。通过从仿真、实验、公开数据库或合成数据中获取数据,经过预处理后,可以将其用于训练深度学习模型。最终,将训练好的深度学习模型与 Abaqus 集成,用于材料行为预测、结构优化、非线性分析、损伤预测等任务,从而提升仿真效率和精度。

源代码杀手的博客 3213

python链表 —— 把链表相邻元素翻转

题目描述: 把链表相邻的结点看成一组进行翻转。假设给定链表1—>2—>3—>4—>5—>6—>7—>8,那么翻转后的链表变为2—>1—>4 —> 3 —> 6 — >5 — >7。 算法思想:就地逆序 通过调整指针域的指向直接调换响铃的两个节点。如果单链表恰好有偶数个节点,那么只需要将就节点对调即可,如果链表有基数...

sinceNow的博客 794

chembl_webresource_client 包数据接口下载chembl数据库;ZINC数据库下载、simles获取

点击进去https://zinc.docking.org/subclasses/kinase/predictions/,然后下载sdf模式,这里可以转化simles格式,如果下载csv里面没有包含simles。参考:https://github.com/chembl/chembl_webresource_client/blob/master/demo_wrc.ipynb。参考:https://zinc.docking.org/这是网页搜索查看,16条数据。这个数据这下载特别慢。

weixin_42357472的博客 3051

【链表】【python】力扣24. 两两交换链表中的节点【超详细的注释和解释】

【链表】【python】力扣24. 两两交换链表中的节点 超详细题解

系统编程、网络编程 1244

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Leetcode206 反转链表 C++,Java,Python 单向链表反转

Leetcode206 反转链表 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-linked-list 博主Github:https://github.com/GDUT-Rp/LeetCode 题目: 反转一个单链表 示例 1: 输入: 1->2->3->4->5->NULL 输出: 5-&g...

Rp的博客 356

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

(python version) 劍指offer 24. 反转链表

题目描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 来源:力扣(LeetCode) 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 解题思路 设置三个指针 prev、cur、nexts 。步骤如下: prev 负责存取反转指针; cur 为移动的指针; nexts 负责先暂存下一步指针 (a)

monarch 114

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【力扣】206.反转链表&24.两两交换链表中的节点

4)first的next指向下一需要反转的节点(因为第一个节点在反转后肯定是最后一个节点,当第一个节点的next为None时即全部反转)。3)dummy的next指向反转节点(dummy的next需要一直指向头节点,因为我们的程序是以dummy.next作为返回结果);每次反转一个节点(对于12345,先反转成21345,再反转成32145…2)反转节点的next指向头节点(这样反转节点就成头节点了);1)保留反转的下一节点,因为反转节点的next会进行改变;输入:head = [1,2,3,4,5]

qq_43710228的博客 503

每K个节点一组翻转链表 Leetcode 25 和剑指 Offer 24 反转链表 Python

利用栈结构 首先能想到的当然是通过栈的结构,来进行反转,设置一个栈,先进后出的性质。唯一需要注意的当剩余的元素不足以放到栈里面的时候,就停止反转就好来。 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def r

C_philadd的博客 313

python每日一题【剑指 Offer 24. 反转链表】

剑指 Offer 24. 反转链表

qq_42896431的博客 329

【力扣热题100】—— Day4.反转链表

给你单链表的头节点head,请你反转链表,并返回反转后的链表。

m0_73983707的博客 1270

链表的反转-leetcode

leetcode 链表反转

weixin_44681349的博客 864

【Python】【难度:简单】Leetcode 面试题24. 反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof 著作权归领扣网络所有。商业转载请联系官方授权..

thomashhs12的博客 231

LeetCode 206 反转链表 Reverse Linked List Python

链表定义 # Definition for singly-linked list. class ListNode: def __init__(self, x): self.val = x self.next = None 206. 反转链表 Reverse Linked List LeetCodeCN 第206题链接 遍历链表,迭代前节点prev,缓存当前...

fongim的博客 270

[leetcode]剑指 Offer 24. 反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 思路: 同[leetcode]206.反转链表 AC代码: class Solution { public: ListNode* reverseList(ListNode* head) {

RegulusF的博客 307

【力扣:python刷题】剑指 Offer 24. 反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。输入: 1->2->3->4->5->NULL。输出: 5->4->3->2->1->NULL。0

m0_46644787的博客 163

leetcode--面试题24. 反转链表

 题目来自LeetCode,链接:面试题24. 反转链表。具体描述为:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。  示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL  还是用两个指针prev和latter分别指向前后节点(分别初始化为head和head.next),把后节点的next指向前节点(latter.next=prev)就能完成反转,然后两个指针都后移到原

JR_Chan的博客 364
上一篇: Python 反转链表-reverse linked list Leetcode No.206
下一篇: Python 链表中间是否有环 Leetcode No.141
GhostintheCode
博客等级 码龄8年 53粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值