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;
}
相关推荐
Doro再努力4 小时前
【数据结构08】队列实现及练习
数据结构·算法
Jayden_Ruan6 小时前
C++分解质因数
数据结构·c++·算法
bubiyoushang8887 小时前
MATLAB实现雷达恒虚警检测
数据结构·算法·matlab
wu_asia7 小时前
编程技巧:如何高效输出特定倍数数列
c语言·数据结构·算法
星火开发设计8 小时前
C++ queue 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识·队列
橘颂TA8 小时前
【剑斩OFFER】算法的暴力美学——力扣 394 题:字符串解码
数据结构·c++·结构与算法
栈与堆8 小时前
LeetCode 19 - 删除链表的倒数第N个节点
java·开发语言·数据结构·python·算法·leetcode·链表
-森屿安年-9 小时前
unordered_map 和 unordered_set 的实现
数据结构·c++·散列表
txinyu的博客9 小时前
map和unordered_map的性能对比
开发语言·数据结构·c++·算法·哈希算法·散列表
im_AMBER10 小时前
Leetcode 101 对链表进行插入排序
数据结构·笔记·学习·算法·leetcode·排序算法