圖解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~