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

京公网安备 11010502036488号