首页 > 其他分享 >24. 两两交换链表中的节点(中)

24. 两两交换链表中的节点(中)

时间:2025-01-04 13:33:18浏览次数:1  
标签:24 p2 head p1 next 链表 let 节点

目录

题目

  • 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

法一、迭代

var swapPairs = function(head) {
    let dummy = {next:head}
    let p1 = dummy
    while(p1.next && p1.next.next){
        let p2 = p1.next
        let p3 = p2.next
        
        //交换p2和p3
        p1.next = p3
        p2.next = p3.next
        p3.next = p2

        //移动指针
        p1 = p2
    }
    return dummy.next
};

法二、递归

var swapPairs = function(head) {
    // 基本情况:如果链表为空或只有一个节点,直接返回头节点
    if (!head || !head.next) {
        return head;
    }
    
    // 记住前两个节点
    let first = head;
    let second = head.next;

    // 递归交换后续节点,并将结果连接到当前交换的节点上
    first.next = swapPairs(second.next);
    second.next = first;

    // 返回新的头节点(第二个节点)
    return second;
};
  • 比较难理解,

标签:24,p2,head,p1,next,链表,let,节点
From: https://www.cnblogs.com/lushuang55/p/18645274

相关文章

  • IntelliJ IDEA 2024.3.1.1安装激活详细图文教程(激活至2026,实际上永久,亲测!)以及常见问
    申明:本教程IntelliJIDEA补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版!卸载老版本IDEA首先,如果小伙伴的电脑上有安装老版本的IDEA,需要将其彻底卸载掉,如下所示(没有安装则不用管,直接安装即可):TIP:如果你之前使......
  • P10145 [WC2024] 线段树 题解
    P10145[WC2024]线段树题解\(\mathcalO(4^{n})\)做法对于线段树上的一个节点区间\([l,r)\)我们连无向边\((l,r)\),那么可以用加减表示出一个区间\([L,R)\)等价于\(L,R\)两点联通。于是可以枚举每条边选或不选,用可撤销并查集判断两点是否联通,复杂度\(\mathcalO(2^{2......
  • dialog弹窗实现(可添加在任意节点上)
    目录dialog弹窗实现(可添加在任意节点上)dialog弹窗实现(可添加在任意节点上)<template><teleportv-if="modelValueHandler||lazyModelValueHandler"to=".ll-adapter"><transitionname="ll-dialog-fade"appear><divv-if="......
  • Python 潮流周刊#84:2024 年 Python 的最佳实践(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。分享了12篇文章,12个开源项目,全文2200字。以下是本期摘要:......
  • 使用 SecureCRT6.5连接新安装的ubuntu24.04时提示No compatible hostkey
    使用SecureCRT6.5连接新安装的ubuntu24.04时提示NocompatiblehostkeyKeyexchangefailed.Nocompatiblekeyexchangemethod.Theserversupportsthesemethods:sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp25......
  • # 2024-2025-1 20241422 《计算机基础与程序设计》第15周学习总结
    2024-2025-120241422《计算机基础与程序设计》第15周学习总结作业信息这个作业属于哪个课程(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里(2024-2025-1计算机基础与程序设计第十三周作业)这个作业的目标信息系统、数据库与SQL、人工智能与专家系统、人工......
  • 24 两两交换链表中的节点
    思路简单,但是操作的时候还是要注意细节,特别是某些结点的next指针变化需要格外关注,报了很多次错。因为没注意到:每次替换两个结点后,应该让当前的后面的结点指向下两个结点的靠后一点的结点。主要还是画完图后没有走一遍链表classSolution{public:ListNode*swapPairs(List......
  • 2024年回顾与2025年展望
    本来打算元旦来做一下本人的年度总结的,但是元旦那天只有一天假,并且那天带孩子出去玩了,总结就耽搁了。这篇总结是自己断断续续靠晚上下班回来,老婆孩子睡着之后以及上班摸鱼时间写出来的2024年回顾本年度总结我继续从生活、学习以及工作上来进行回顾。首先是生活上,今天孩子开始在......
  • 开发工具推荐:IntelliJ IDEA 2024 教程 如何安装激活详细使用(激活至2026,实际上永久,亲
    申明:本教程IntelliJIDEA补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版!卸载老版本IDEA首先,如果小伙伴的电脑上有安装老版本的IDEA,需要将其彻底卸载掉,如下所示(没有安装则不用管,直接安装即可):TIP:如果你之前使......
  • IDEA 2024.3.1.1完整的安装教程(激活至2099年,以及常见问题处理)
    卸载老版本IDEA首先,如果小伙伴的电脑上有安装老版本的IDEA,需要将其彻底卸载掉,如下所示(没有安装则不用管,直接安装即可):TIP:如果你之前使用过本站提供的 激活到2025年版本脚本,需要执行对应卸载脚本/适用2024版本/JetBrains2023最新全家桶/jetbra/scripts/uninstall-a......