Description:
题目大意:找到两个链表的第一个公共节点
解题思路:
算法标签:双指针
- 合并两个链表,使其公共点前面的元素个数相同
- 设置双指针 list1 和 list2
- 直到 list1 == list2 即为公共点
代码:
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
ListNode* list1 = pHead1;
ListNode* list2 = pHead2;
while(list1 != list2) {
if(list1 != NULL)
list1 = list1 -> next;
else
list1 = pHead2;
if(list2 != NULL)
list2 = list2 -> next;
else
list2 = pHead1;
}
return list1;
}
};