一、题目
二、代码
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB)
{
ListNode* cur_A = headA;
ListNode* cur_B = headB;
int length_A=0;
int length_B=0;
int length_dif=0;
while(cur_A!=nullptr)
{
length_A++;
cur_A=cur_A->next;
}
while(cur_B!=nullptr)
{
length_B++;
cur_B=cur_B->next;
}
cur_A=headA;
cur_B=headB;
if(length_A<length_B) //保证A是长的 交换十分巧妙
{
swap(length_A,length_B);
swap(cur_A,cur_B);
}
length_dif=length_A-length_B;
while(length_dif!=0)
{
cur_A=cur_A->next;
length_dif--;
}
while(cur_A!=nullptr&&cur_B!=nullptr)
{
if(cur_A==cur_B)
{
return cur_A;
}
else
{
cur_A=cur_A->next;
cur_B=cur_B->next;
}
}
return nullptr;
}
};