题目
思路:
A自己的链表节点数+B自己的链表节点数+共同节点数是相同的。那么如果一个指针先从A出发走到头再从B的头节点出发,那么
- 如果两个链接有相交,必然会在交换后一起走到相交节点,这时候两者相等都为相交节点
- 如果两个链接没有相交,必然会在交换后都走到头,这时候两者相等都为null节点
代码:
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode aI=headA;
ListNode bI=headB;
while (aI!=bI){
aI=aI==null?headB: aI.next;
bI=bI==null?headA: bI.next;
}
return aI;
}