方式一:
public ListNode findFirstCommonNode(ListNode pHead1, ListNode pHead2) {
ListNode p1 = pHead1;
ListNode p2 = pHead2;
while(p1 != p2) {
p1 = p1 == null ? pHead2 : p1.next;
p2 = p2 == null ? pHead1 : p2.next;
}
return p1;
}
方式二:
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
ListNode curr1 = pHead1;
ListNode curr2 = pHead2;
Map map = new HashMap<>();
while (curr1 != null) {
map.put(curr1, null);
curr1 = curr1.next;
}
while(curr2 != null) {
if (map.containsKey(curr2)) {
return curr2;
}
curr2 = curr2.next;
}
return null;
}