解法一(两链表共同后缀长度相同)
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
if (headA == nullptr || headB == nullptr)
return nullptr;
int len_a = 1, len_b = 1;
ListNode *temp = headA;
while ((temp = temp->next))
++len_a;
temp = headB;
while ((temp = temp->next))
++len_b;
len_a -= len_b;
while (len_a != 0)
if (len_a > 0) {
headA = headA->next;
--len_a;
} else {
headB = headB->next;
++len_a;
}
while (headA && headB) {
if (headA == headB)
return headA;
headA = headA->next;
headB = headB->next;
}
return nullptr;
}
解法二
set不能保存重复元素