160. 相交链表

自己做

解:快慢指针
java
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
int len1 = 0;
int len2 = 0;
ListNode p = headA;
ListNode q = headB;
while(p != null){
len1++;
p = p.next;
}
while(q != null){
len2++;
q = q.next;
}
p = headA;
q = headB;
if(len1 < len2)
for(int i = 0; i < len2 - len1; i++)
q = q.next;
else
for(int i = 0; i < len1 - len2; i++)
p = p.next;
while(p != null && q != null && p != q){
p = p.next;
q = q.next;
}
if(p == q)
return p;
else
return null;
}
}
