1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
* Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { int lenA = 0, lenB = 0; ListNode p = headA; ListNode q = headB; while (p != null) { p = p.next; lenA++; } while (q != null) { q = q.next; lenB++; }
int n = lenA - lenB; p = n > 0 ? headA : headB; q = n > 0 ? headB : headA; n = n > 0 ? n : -n; for (int i = 0; i < n; i++) { p = p.next; }
while (p != q) { p = p.next; q = q.next; }
return p; } }
|
近期评论