https://leetcode.cn/problems/intersection-of-two-linked-lists/?envType=study-plan-v2&envId=top-100-liked
关键是消除两个链表的长度之差,因为相交点之后的链表的长度一定是相同的,所以要先找到距离末尾相同的那个点在哪里,有技巧,需要思考
技巧:就是看哪个链表的指针先到达末尾,到达末尾的话就让其指向另一个链表的首部,这样就能消除两个链表之间的长度差
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
ListNode *A=headA;
ListNode *B=headB;
while(A!=B){ //A,B存的是地址,也就是只有找到第一个相同的交点时才会退出循环(或者A=B=Null)
A=A!=nullptr ? A->next:headB;
B=B!=nullptr ? B->next:headA;
}
return A;
}
};