题目描述
输入两个链表,找出它们的第一个公共结点。
(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)
题目分析
连接两个链表,使两个链表的长度相等,当遇到第一个相同的结点,直接返回该结点。
代码
C++代码如下:
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
if(!pHead1||!pHead2)
return NULL;
ListNode* p1=pHead1;
ListNode* p2=pHead2;
while(p1!=p2)
{
p1= p1==NULL? pHead2:p1->next;
p2= p2==NULL? pHead1:p2->next;
}
return p1;
}
};