力扣两两交换链表中的结点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;
    }
};
相关推荐
hold?fish:palm1 小时前
RDB全量快照备份
c++·redis·后端
什巳1 小时前
JAVA练习306- 翻转二叉树
java·数据结构·算法·leetcode
smj2302_796826521 小时前
解决leetcode第3989题网格中保持一致的最大列数
python·算法·leetcode
盐焗鹌鹑蛋2 小时前
【C++】C++11:列表初始化、声明、STL升级
c++
巧克力男孩dd3 小时前
Python超典型练习题(第一次作业)
开发语言·python·算法
爱刷碗的苏泓舒3 小时前
平方根信息滤波:矩阵推导及 GNSS 参数估计应用
线性代数·算法·矩阵·gnss·参数估计·测量平差·平方根信息滤波
想做小南娘,发现自己是女生喵4 小时前
第 2 章 顺序表和 vector
java·数据结构·算法
ComputerInBook4 小时前
c 和 c++ 中的宏块(macro)
c语言·c++··宏块·宏指令
艾醒4 小时前
2026年第29周(7.13-7.19)AI全复盘:技术突破、行业趣闻翻车、算力服务器商业动态
人工智能·算法
AA陈超5 小时前
004 T02 - 俯视角摄像机系统 设计文档
网络·c++·ue5·虚幻引擎