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