【手繪漫畫】圖解LeetCode之相交鏈表(LeetCode 160)

在這裏插入圖片描述

圖解LeetCode刷題計劃

1、寫在前面

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

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

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

2、題目

首先看一下題目,
在這裏插入圖片描述
非常巧妙的一個題,看到思路的時候都驚呆了,這種如果做過就會有印象,下次遇到可能就能很好地做出來了!
在這裏插入圖片描述

3、正文

一起來看:

思路是雙指針,分別指向兩個鏈表的頭節點,循環這個鏈表,之後再去循環另一個鏈表。

分爲兩種情況:

  • 一種是沒有交點;
    在這裏插入圖片描述
    循環之後就返回 NULL,因爲沒有交點。

  • 另一種是有交點;
    在這裏插入圖片描述
    循環之後兩個指針都指向了交點。


有一種很浪漫的說法,就是——如果有緣,必會相見~
在這裏插入圖片描述
在這裏插入圖片描述

4、代碼

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        auto a=headA,b=headB;
        while(a!=b){
            if(a) a=a->next;
            else a=headB;
            if(b) b=b->next;
            else b=headA;
        }
        return a;
    }
};

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

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

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

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