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) { int length1 = getLength(pHead1), length2 = getLength(pHead2); while (length1 < length2) { pHead2 = pHead2.next; length1++; } while (length1 > length2) { pHead1 = pHead1.next; length2++; } while (pHead1 != pHead2) { pHead1 = pHead1.next; pHead2 = pHead2.next; } return pHead1; } private static int getLength(ListNode head) { int length = 0; while (head != null) { length++; head = head.next; } return length; } }