力扣两两交换链表中的结点C++

题目


知识点

虚拟头节点


思路

注意交换的是整个结点,不是数值


错误

空指针异常

复制代码
while (cur->next && cur->next->next) { }

不能交换cur->next和cur->next->next,要是交换了,可能会找不到cur->next而发生空指针异常。


代码

cpp 复制代码
class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        ListNode* dummy = new ListNode(0, head);
        ListNode* cur = dummy;
        //不能交换顺序,不然cur->next->next走到cur->next的时候就可能空,发生空指针异常
        while (cur->next && cur->next->next) {
            ListNode* temp = cur->next;
            ListNode* temp1 = cur->next->next->next;
            cur->next = cur->next->next;
            cur->next->next = temp;
            temp->next = temp1;
            cur = cur->next->next;
        }
        return dummy->next;
    }
};
相关推荐
豆沙沙包?7 分钟前
C++-程序的内存模型(P84-P88)
java·jvm·c++
jufeng13078 分钟前
【系列:MiniKV 原理剖析 · 第 8 篇(完结篇)】
linux·c++·log4j·软件工程·makefile
VL——MOESR36 分钟前
【LuoguP1967】货车运输【生成树】【倍增】
c++·算法·题解·倍增·生成树
手写码匠38 分钟前
华为云Flexus+DeepSeek征文|Agent 记忆系统实战:用 DeepSeek-R1/V3 + Dify 会话变量打造跨会话长期记忆
人工智能·深度学习·算法·aigc
草莓熊Lotso1 小时前
【Linux网络】从0手写Reactor反应堆(二):完善核心细节——ET非阻塞读写、分层架构与回调机制
linux·运维·服务器·网络·c++·tcp/ip·架构
Olafur_zbj1 小时前
【AI】CUDA编程中的维度
人工智能·算法
cvby1 小时前
C++哈希
c++·哈希算法·散列表
世事如云有卷舒1 小时前
GoogTest测试框架
c++·测试
疯狂打码的少年1 小时前
【数据结构】栈:定义、顺序栈与链式栈
数据结构·笔记
坚持编程的菜鸟2 小时前
模拟实现memcpy
c语言·算法·模拟实现my_memcpy