题目描述
输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)
代码:
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
ListNode *pa=pHead1,*pb=pHead2;
if(pHead1==NULL||pHead2==NULL) return NULL;
while(pa!=pb)
{
pa=pa->next;
pb=pb->next;
if(pa==pb) break;
if(pa==NULL) pa=pHead2;
if(pb==NULL) pb=pHead1;
}
return pa;
}
};