/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
import java.lang.Math;
public class Solution {
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
int length1 = ListLength(pHead1);
int length2 = ListLength(pHead2);
int absLen = Math.abs(length1 - length2);
if(length1 > length2)
{
while(absLen > 0)
{
pHead1 = pHead1.next;
absLen -= 1;
}
}
else
{
while(absLen > 0)
{
pHead2 = pHead2.next;
absLen -= 1;
}
}
//两个链表长度相同了
while(pHead1 != pHead2)
{
pHead2 = pHead2.next;
pHead1 = pHead1.next;
}
return pHead1;
}
public static int ListLength(ListNode head)
{
int len = 0;
while(head != null)
{
len += 1;
head = head.next;
}
return len;
}
}