【手繪漫畫】圖解LeetCode之兩兩交換鏈表中的節點(LeetCode 24)

在這裏插入圖片描述

圖解LeetCode刷題計劃

1、寫在前面

手繪漫畫系列正式上線!!!“圖解LeetCode刷題計劃” 來了!!!

今天是第十九期,爭取每天一期,最多兩天一期,歡迎大家監督我。。。
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

2、題目

首先看一下題目,
在這裏插入圖片描述
【手繪漫畫】面試必考之圖解逆轉單鏈表/單鏈表逆序

這裏要先確定一個問題,依舊還是逆轉鏈表, 不過是兩個節點的逆轉!
在這裏插入圖片描述

3、正文

一起來看:

其實就是讓節點順序進行交換,思路圖如下:
在這裏插入圖片描述
具體過程是,首先初始化,創建一個虛擬節點,用來保存最初的頭節點。
在這裏插入圖片描述
在這裏插入圖片描述
不要忘記把 p 移動到下一個位置~
在這裏插入圖片描述

4、代碼

/**
 * 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;
    }
};

在這裏插入圖片描述
在這裏插入圖片描述

如果有幸幫到你,請幫我點個【贊】,給個【關注】!如果能順帶【評論】給個鼓勵,我將不勝感激。

如果想要更多的資源,歡迎關注 @我是管小亮,文字強迫症MAX~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章