两个链表的第一个公共结点
输入两个链表,找出它们的第一个公共结点。
当不存在公共节点时,返回空节点。
样例
给出两个链表如下所示:
A: a1 → a2
↘
c1 → c2 → c3
↗
B: b1 → b2 → b3
输出第一个公共节点c1
Map
时间复杂度O(n)
class Solution {
public ListNode findFirstCommonNode(ListNode headA, ListNode headB) {
Map<ListNode,Integer> map = new HashMap();
while(headA != null){
map.put(headA,1);
headA = headA.next;
}
while(headB != null){
if(map.get(headB) != null){
return headB;
}
headB = headB.next;
}
return null;
}
}