p1遍历完a遍历b,p2遍历完b遍历a,让两个链表逻辑上看起来是相连的,最后一定会在同一个点相遇
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
ListNode *p1 = headA, *p2 = headB;
while (p1 != p2)
{
if (p1 == NULL)
p1 = headB;
else
p1 = p1->next;
if (p2 == NULL)
p2 = headA;
else
p2 = p2->next;
}
return p1;
}
};