前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【手绘漫画】图解LeetCode之两两交换链表中的节点(LeetCode 24)

【手绘漫画】图解LeetCode之两两交换链表中的节点(LeetCode 24)

作者头像
我是管小亮
发布2020-04-23 17:31:25
2340
发布2020-04-23 17:31:25
举报

1、写在前面

手绘漫画系列正式上线!!!"图解LeetCode刷题计划" 来了!!!

今天是第十九期,争取每天一期,最多两天一期,欢迎大家监督我。。。

2、题目

首先看一下题目,

【手绘漫画】图解逆转单链表_单链表逆序(数据结构)

这里要先确定一个问题,依旧还是逆转链表, 不过是两个节点的逆转!

3、正文

一起来看:

其实就是让节点顺序进行交换,思路图如下:

具体过程是,首先初始化,创建一个虚拟节点,用来保存最初的头节点。

不要忘记把 p 移动到下一个位置~

4、代码

代码语言:javascript
复制
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        auto dummy=new ListNode(-1);
        dummy->next=head;
        for(auto p=dummy;p->next&&p->next->next;){
            auto a=p->next,b=a->next;
            p->next=b;
            a->next=b->next;
            b->next=a;
            p=a;
        }
        return dummy->next;
    }
};
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员管小亮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档