题目描述:
代码实现:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
struct ListNode* listA=headA,*listB=headB;
int len1=1,len2=1,len=0;
if(listA==listB)
return headA;
while(listA->next)
{
listA=listA->next;
len1++;
}
while(listB->next)
{
listB=listB->next;
len2++;
}
if(listA!=listB)
return NULL;
struct ListNode* llist=headA;
struct ListNode* glist=headB;
if(len1>len2)
{
len=len1-len2;
llist=headB;
glist=headA;
}
else
{
len=len2-len1;
}
while(len)
{
glist=glist->next;
len--;
}
while(llist!=glist)
{
llist=llist->next;
glist=glist->next;
}
return llist;
}