本文主要是介绍【力扣 面试题02.07链表相交】一种思路极其清晰的解法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
力扣一单简单题,看完大佬的题解真是佩服得五体投地!
虽是一道简单题,当我吭哧吭哧写了几十行后,看到大佬仅仅几行直接秒掉,只能说算法的本质还是数学,数学逻辑思维真是太重要了,有时候真得慢慢去培养这种思维,才能在面试中脱颖而出!
这里贴上题目链接:链表相交
代码的整体逻辑十分清晰,核心思想就是让A B的两个指针走相同的步数,如果走了相同步数(不相交的话,最终A B都是nullptr;如果相交的话那么刚好会在交点相遇)
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)
不懂的建议大家看看大佬的原贴,这里仅记录这种解题思想以时刻提醒自己。
这篇关于【力扣 面试题02.07链表相交】一种思路极其清晰的解法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!