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;
}
相关推荐
海清河晏11113 小时前
数据结构 | 八大排序
数据结构·算法·排序算法
liulilittle14 小时前
固定数组时间轮的槽过载优化:桶链表与批次执行
网络·数据结构·链表
Irissgwe15 小时前
数据结构-栈和队列
数据结构·c++·c·栈和队列
两片空白15 小时前
数据容器集合set/frozenset
数据结构
代码中介商16 小时前
跳表:高效查找的链表黑科技
数据结构
SHARK_pssm17 小时前
【数据结构——树与堆】
c语言·数据结构·经验分享·笔记
RH23121118 小时前
2026.6.10 数据结构 二叉树
数据结构
Tisfy19 小时前
LeetCode 2130.链表最大孪生和:转数组 / 快慢指针+链表翻转(O(1))
算法·leetcode·链表·题解
CHHH_HHH19 小时前
【C++】哈希表原理与实战:从冲突解决到性能优化
开发语言·数据结构·c++·学习·算法·哈希算法·散列表
Irissgwe19 小时前
数据结构-排序
数据结构·算法·排序算法