一 题目:
二 思路:
两个链表相交,如果从a和b分别出发,都走了c,再交换出发点再次出发,必然相遇于目标节点
因为a+c+b(a路径)=a+c+b(b路径)
- 1.如果
三 代码:
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
if(headA==null ||headB==null){ return null;}
// a1 a2
// c1 c2 c3 c4
// b1 b2 b3
//a+c+b=b+c+a
ListNode n1=headA,n2=headB;
while (n1!=n2){
n1=n1==null?headB:n1.next;
n2=n2==null?headA:n2.next;
}
return n1.next;
}