LeetCode24两两交换链表中的节点

思路:

设定一个dummy虚拟头节点 注意:需要使用malloc分配好内存,两个指针,pre在后,cur在前,先链接后面的节点,避免链表丢失,循环进入下一轮的要注意指针的位置,剩下就是常规操作

c 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* swapPairs(struct ListNode* head) {
    struct ListNode* dummy=(struct ListNode*)malloc(sizeof(struct ListNode));//设置虚拟头节点
    struct ListNode* pre;
    struct ListNode* cur;
    dummy->next=head;//初始化
    pre=dummy;
    cur=dummy->next;
    while(cur!=NULL&&cur->next!=NULL)
    {
        pre->next=cur->next;
        cur->next=cur->next->next;
        pre->next->next=cur;
        pre=cur;//指针往后跳
        cur=cur->next;
    }
    return dummy->next;
}
相关推荐
闪电悠米12 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
WL学习笔记13 小时前
堆(数据结构)
数据结构·
wabs66617 小时前
关于图论【卡码网100.最大岛屿的面积的思考】
数据结构·算法·图论
yuannl1018 小时前
图的最短路径Dijkstra
数据结构
fpcc19 小时前
数据结构和算法—拓扑的应用
数据结构·c++·算法
zander25819 小时前
138. 随机链表的复制
数据结构·算法·链表
过期动态19 小时前
【LeetCode 热题 100】找到字符串中所有字母异位词
java·数据结构·算法·leetcode·职场和发展·rabbitmq
来一碗刘肉面20 小时前
栈在递归中的应用
数据结构·算法
皓月斯语20 小时前
程序设计语言的特点
开发语言·数据结构·c++
邪修king20 小时前
C++ 进阶终章:异常机制与智能指针全解 —— 从错误处理到 RAII 资源管理,打通现代 C++ 的核心命脉
android·数据结构·c++