找到两个单链表相交的起始节点
LINK:LeetBook 160.相交链表
如果两个链表没有交点,返回 null。
在返回结果后,两个链表仍保持原有的结构。
假定整个链表结构中没有循环。
时间复杂度: O(n) ,内存:O(1)。
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
if (headA == null||headB == null){
return null;
}
ListNode pa = headA;
ListNode pb = headB;
while (pa!=pb){
if (pa.next == null && pb.next == null){
return null;
}
if (pa.next==null){
pa = headB;
pb = pb.next;
}
else if (pb.next == null){
pa = pa.next;
pb = headA;
}
else {
pa = pa.next;
pb = pb.next;
}
}
return pa;
}