解题步骤:
找出他们的长度 然后大的减小的 最后长的更新头节点
然后循环比较 相等返回节点 到头返回空
实现代码:
int GetListNumber(ListNode *head)
{
int count=0;
for(ListNode *p=head;p!=NULL;p=p->next)
{
count++;
}
return count;
}
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB)
{
int a=GetListNumber(headA);
int b=GetListNumber(headB);
int t;
if(a>b)
{
t=a-b;
while(t--)
headA=headA->next;
}
else
{
t=b-a;
while(t--)
headB=headB->next;
}
for(;headA!=NULL;headA=headA->next,headB=headB->next)
{
if(headA==headB)
{
return headA;
}
}
return NULL;
}