链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/
这道题的解法非常的巧妙,创建两个指针分别指向两个链表的头部,然后同时向后移,当它们第一次到达尾部(值为null)时,将它们移到另一个链表的头部,继续后移。若两链表相交,则在它们第二次到达尾部之前,两指针会相交于一个非空链表,若不相交,则它们会同时到达(null)。
java代码:
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode p = headA;
ListNode q = headB;
while(p!=q)
{
p = (p==null)?headB:p.next;
q = (q==null)?headA:q.next;
}
return p;
}
}