/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
ListNode cur1 = pHead1;
int len1 = 0;
ListNode cur2 = pHead2;
int len2 = 0;
while (cur1 != null) {
len1++;
cur1 = cur1.next;
}
while (cur2 != null) {
len2++;
cur2 = cur2.next;
}
int len = len2 - len1;
if (len < 0) {
len = len1 - len2;
}
cur1 = pHead1;
cur2 = pHead2;
if (len2 < len1) {
for (int i = 1; i <= len; i++) {
cur1 = cur1.next;
}
} else {
for (int i = 1; i <= len; i++) {
cur2 = cur2.next;
}
}
while (cur1 != cur2) {
cur1 = cur1.next;
cur2 = cur2.next;
}
return cur1;
}
}