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