【力扣 面试题02.07链表相交】一种思路极其清晰的解法

力扣一单简单题,看完大佬的题解真是佩服得五体投地!
虽是一道简单题,当我吭哧吭哧写了几十行后,看到大佬仅仅几行直接秒掉,只能说算法的本质还是数学,数学逻辑思维真是太重要了,有时候真得慢慢去培养这种思维,才能在面试中脱颖而出!

这里贴上题目链接:链表相交
【力扣 面试题02.07链表相交】一种思路极其清晰的解法_第1张图片
代码的整体逻辑十分清晰,核心思想就是让A B的两个指针走相同的步数,如果走了相同步数(不相交的话,最终A B都是nullptr;如果相交的话那么刚好会在交点相遇)
【力扣 面试题02.07链表相交】一种思路极其清晰的解法_第2张图片

class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        ListNode *A = headA, *B = headB;
        while (A != B) {
            A = A != nullptr ? A->next : headB;
            B = B != nullptr ? B->next : headA;
        }
        return A;
    }
};

作者:Krahets
链接:https://leetcode.cn/problems/intersection-of-two-linked-lists-lcci/solutions/1190240/mian-shi-ti-0207-lian-biao-xiang-jiao-sh-b8hn/
来源:力扣(LeetCode)

不懂的建议大家看看大佬的原贴,这里仅记录这种解题思想以时刻提醒自己。

你可能感兴趣的:(#,LeetCode刷题日记,leetcode,链表,算法)