题目没有要求时间复杂度,所以,如果存在共同的节点,那么该节点的哈希值相等,记录该哈希值,遍历另一个链表,判断哈希值是否存在,第一个存在的节点就是公共节点

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;
}