题目:两个链表的第一个公共结点
题目描述
输入两个链表,找出它们的第一个公共结点。
思路
用哈希map
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
unordered_map<ListNode *, int> m;
//将pHead1的节点全部放入map中
while(pHead1){
m[pHead1]++;
pHead1 = pHead1->next;
}
while(pHead2){
m[pHead2]++;
if(m[pHead2]==2) return pHead2;//如果存在,则返回
pHead2 = pHead2->next;
}
return pHead2;
}
};