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

24 两两交换链表中的节点

时间:2025-01-03 22:55:05浏览次数:1  
标签:24 结点 right ListNode next 链表 节点 left

思路简单,但是操作的时候还是要注意细节,特别是某些结点的next指针变化需要格外关注,报了很多次错。因为没注意到:每次替换两个结点后,应该让当前的后面的结点指向下两个结点的靠后一点的结点。主要还是画完图后没有走一遍链表

class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        ListNode* left = head; 
        if (left== NULL) return head;
        ListNode* right = left->next;  
        if (right == NULL) return head;

        ListNode* newhead = right;

        while(left != nullptr && left->next != nullptr)
        {   
            left->next = right->next;
            right->next = left;
            ListNode* temp1 = left->next;
            if(temp1 == NULL) break;
            else
            {
                ListNode* temp2 = temp1->next;
                if(temp2 == NULL) break;
                else
                {
                    left->next = temp2;//如果没有这一步就会导致链表断开
                    left = temp1;
                    right = temp2; 
                }
                
            }             
        }
        return newhead;
    }
};

后面去看了别人使用虚拟头结点代码,思路也是差不多。不过确实要简洁不少


标签:24,结点,right,ListNode,next,链表,节点,left
From: https://www.cnblogs.com/gqzz/p/18651108

相关文章

  • 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......
  • 2024秋季学期 马克思主义基本原理
    思维导图这玩意还没整理好,后面好了应该会更新上来期末小论文这玩意理论上不应该分享出来的,但我感觉我这次写的怪好的,想给大家看看()正好老师要求提交手写版,所以说我就提供一份手写扫描版的供大家看看,电子版就不提供了......
  • PKUWC 2024 游记
    2025.1.2THUWC不过初审。我这辈子上不了TP了。NOIP后两周,成绩、省队名额一出,稍有信心,热情充足。最近两周,突然变味成划水。本应将电脑上的linux分区视为阵地,却把越来越多的时间耗在配环境上,装了CUPS,i3,polybar,TeXlive,zathura,linux-lts,midieditor,fluidsynth,jackd等一堆软......
  • FileReader & FileWrite - 2024/11/17
    FileReader构造方法FileReader(Filefile):创建一个新的FileReader,给定要读取的File对象。FileReader(StringfileName):创建一个新的FileReader,给定要读取的文件的名称。读取字符数据读取字符:read方法,每次可以读取一个字符的数据,提升为int类型,读取到文件末尾,返回-1......
  • JSON -2024/11/2
    JSON本质就是一个字符串JSON串的键要求必须使用双引号括起来,而值根据要表示的类型确定导入依赖<!--https://mvnrepository.com/artifact/taglibs/standard--><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId>......
  • 数据链路层是OSI模型的第二层,负责在相邻节点间传输数据
    数据链路层是OSI模型的第二层,负责在相邻节点间传输数据。在这一层中,数据以帧(Frame)的形式进行封装和传输。帧是数据链路层的基本传输单位,它不仅包括实际要传输的数据,还包括控制信息,如源地址、目的地址、错误检测码等。这些控制信息帮助接收方正确解读数据,并进行必要的错误处......
  • B4004 [GESP202406 三级] 寻找倍数
    题目描述小杨有一个包含 ......
  • HIT-CS-研究生课程(2024)
    组合数学这个课是hyf老师上的,大概开过两年,老师讲的非常好,每道例题都从头到尾的讲一遍,大概内容包括鸽巢原理,排列组合,容斥原理,生成函数,递推关系,ploya定理。。。整个课就是数数(各种求方案数),有两次作业占20分,期末占80分,平时课上听一听,期末把ppt过一遍稳过的,老师还会把往年真题发在群......