import java.util.*;
/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
     //由 123 +67 +45 = 45 +67+123
     //两条链表的总长度-去公共长度是一样的
     //所以两个一起走,走完自己的路然后走别人的路,由于总路程是一样的,所以最后肯定会在节点相遇。
     ListNode cur1 = pHead1,cur2 = pHead2;
     while(cur1!=cur2){
        cur1 = cur1 != null ? cur1.next : pHead2;
        cur2 = cur2 != null ? cur2.next : pHead1;
     }
     return cur1;
    }
}