160. 相交链表
题目描述
题解分析
- 本题使用的方法是双指针法,题目和环形链表相似,都是利用链表的特性来求解。
- 当遍历链表a到达尾部时,再指向链表b的头部;当遍历链表b到末尾时,再指向链表a的头部。
- 再次相遇时便是相交结点。
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) {
ListNode lista = headA, listb = headB;
while(lista != listb){
lista = lista != null ? lista.next : headB;
listb = listb != null ? listb.next : headA;
}
return lista;
}
}