题目参考leetcode160. 相交链表
思路:定义两个指针,一个指向链表1,另一个指向链表2;
让两个指针相同速度移动到末尾,当a指针指向null时返回到链表2头部,b指针指向null时返回到链表1头部。继续向末尾移动,相交的点即为相交链表部分的头节点。
代码如下:
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode a = headA;
ListNode b = headB;
while(a != b){
a = a == null?headB:a.next;
b = b == null?headA:b.next;
}
return a;
}
}
如果链表不相交返回的a指向null,反之指向相交链表头节点。