两两交换链表中的节点

你存在,我深深的脑海里~


题目:


示例:


思路:

这个题有点类似于反转一个单链表,不同的地方在于这个题不全反转,所以我们不同的地方在于此题多用了一个prve指针保存n1的前一个节点,以及头的改变,用newhead保存一个新的头,其他都大同小异,参考:反转一个单链表


代码:

复制代码
struct ListNode* swapPairs(struct ListNode* head)
{
    if (head == NULL)
        return NULL;

    struct ListNode* newhead = head;

    struct ListNode* n1 = head;
    struct ListNode* n2 = NULL;
    struct ListNode* n3 = NULL;

    struct ListNode* prve = NULL;
    while (n1 && n1->next)
    {

        n2 = n1->next;
        n3 = n2->next;
        if (n1 == head)
        {
            n1->next = n2->next;
            n2->next = n1;
            newhead = n2;
        }
        else
        {
            n1->next = n2->next;
            n2->next = n1;

            prve->next = n2;
        }
        prve = n1;
        n1 = n3;
    }

    return newhead;
}

个人主页:Lei宝啊

愿所有美好如期而遇

相关推荐
漂流瓶jz12 小时前
UVA-1612 猜名次 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·题解·排序·aoapc·算法竞赛入门经典
A boy CDEF girl18 小时前
算法题专栏:优选算法
数据结构·算法·leetcode
图灵-M21 小时前
【数据结构】静态 & 动态顺序表
c语言·数据结构·笔记
careathers1 天前
【数据结构】基于比较的排序算法 - 选择排序
数据结构·算法·排序算法
XiYang-DING1 天前
P4104.环形链表判断
数据结构·链表
逆向编程1 天前
MATLAB高级数据结构:cell、struct与table深度应用
开发语言·数据结构·matlab
m0_639906941 天前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
2601_970703832 天前
工业除湿机租赁:把一份租金合同拆开看
大数据·数据结构·算法·数据库架构·推荐算法
丘山望岳2 天前
单调栈和单调队列
数据结构
UIU1142 天前
P16237 [蓝桥杯 2026 省 B] 应急布线
数据结构·c++·算法·蓝桥杯