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;
}
相关推荐
散11214 小时前
01数据结构-01背包问题
数据结构
消失的旧时光-194314 小时前
Kotlinx.serialization 使用讲解
android·数据结构·android jetpack
Gu_shiwww15 小时前
数据结构8——双向链表
c语言·数据结构·python·链表·小白初步
苏小瀚16 小时前
[数据结构] 排序
数据结构
_不会dp不改名_18 小时前
leetcode_21 合并两个有序链表
算法·leetcode·链表
睡不醒的kun18 小时前
leetcode算法刷题的第三十四天
数据结构·c++·算法·leetcode·职场和发展·贪心算法·动态规划
吃着火锅x唱着歌18 小时前
LeetCode 978.最长湍流子数组
数据结构·算法·leetcode
Whisper_long19 小时前
【数据结构】深入理解堆:概念、应用与实现
数据结构
IAtlantiscsdn19 小时前
Redis7底层数据结构解析
前端·数据结构·bootstrap
我星期八休息19 小时前
深入理解跳表(Skip List):原理、实现与应用
开发语言·数据结构·人工智能·python·算法·list