力扣两两交换链表中的结点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;
    }
};
相关推荐
叠层归一研究院2 分钟前
基于极限自指的叠层归一宇宙结构理论——无元外部封闭系统的内生区分模型
人工智能·经验分享·算法·agi
Selvaggia1 小时前
Diffusion Model 的基本原理与模型架构
算法
汉克老师2 小时前
CSP-J 2026 初赛试题解析(第一部分:选择题(8-15))精讲
c++·csp-j·小学生·学c++编程
wabs6662 小时前
关于二叉树【力扣572.另一棵树的子树的思考】
数据结构·c++·算法·leetcode·二叉树
hanlin032 小时前
刷题笔记:力扣第41题-缺失的第一个正数
笔记·算法·leetcode
shehuiyuelaiyuehao3 小时前
算法50,分治归并,数组中的逆序对
java·算法
风合星语4 小时前
2026 ROS 2 Lyrical C++ 入门(五):Action 实战——任务反馈、取消与超时处理
c++·机器人·ros2·异步编程·lyrical
阳明山水4 小时前
校准分位数驱动智能库存决策
人工智能·深度学习·算法·机器学习·架构
91刘仁德4 小时前
C++ 继承和多态 设计模式
c语言·c++·笔记
雨落在了我的手上4 小时前
Java数据结构(十四):Map和Set
数据结构