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;
}
相关推荐
秋说5 分钟前
【PTA数据结构 | C语言版】返回单链表 list 中第 i 个元素值
c语言·数据结构·list
雾里看山11 分钟前
数据结构之队列
数据结构
双叶83644 分钟前
(C++)任务管理系统(正式版)(迭代器)(list列表基础教程)(STL基础知识)
c语言·开发语言·数据结构·c++·list
s153351 小时前
数据结构-顺序表-拿硬币
数据结构
嗜好ya2 小时前
LeetCode 560: 和为K的子数组
数据结构·算法·leetcode
闪电麦坤954 小时前
数据结构:数组:合并数组(Merging Arrays)
数据结构·算法
kk_stoper4 小时前
使用Ruby接入实时行情API教程
java·开发语言·javascript·数据结构·后端·python·ruby
myloveasuka4 小时前
leetcode11.盛最多水的容器
c语言·数据结构·c++·leetcode
C++ 老炮儿的技术栈4 小时前
tinyxml2 开源库与 VS2010 结合使用
c语言·数据结构·c++·算法·机器人
秋说5 小时前
【PTA数据结构 | C语言版】计算1~n与1~m每一项相互乘积的和
c语言·数据结构·算法