题目描述
输入两个链表,找出它们的第一个公共结点。
ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
if(pHead1 == NULL || pHead2 == NULL) return NULL;
ListNode *node1,*node2;
int flag1 = 1, flag2 = 1;
for(node1=pHead1; node1->next!=NULL; node1=node1->next)flag1++;
for(node2=pHead2; node2->next!=NULL; node2=node2->next)flag2++;
int flag = abs(flag1 - flag2),i;
node1=pHead1;
node2=pHead2;
if(flag1 > flag2)
for(i=0; i<flag; node1=node1->next,i++);
if(flag2 > flag1)
for(i=0; i<flag; node2=node2->next,i++);
for(; node1!=node2; node1=node1->next,node2=node2->next);
return node1;
}