题目没有要求时间复杂度,所以,如果存在共同的节点,那么该节点的哈希值相等,记录该哈希值,遍历另一个链表,判断哈希值是否存在,第一个存在的节点就是公共节点
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
HashSet<ListNode> set = new HashSet<>();
ListNode tmp = pHead1;
while (tmp!=null){
set.add(tmp);
tmp = tmp.next;
}
tmp = pHead2;
while (tmp!=null){
if (set.contains(tmp)){
return tmp;
}
tmp = tmp.next;
}
return null;
}
京公网安备 11010502036488号