package leetcode;
public class demo_160 {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode nodeA=headA;
ListNode nodeB=headB;
//A链表跑到到表尾时,会接着B链表
//B链表跑到到表尾时,会接着A链表
//此时两个链表长度是一样的,如果有重合地方,则结束运行
while(nodeA!=nodeB) {
//如果A链表和B链表都跑完,都没出现重合地方,则说明不存在重合
if(nodeA==null&&nodeB==null) {
break;
}
//A链表跑到到表尾时,会接着B链表
if(nodeA==null) {
nodeA=headB;
}
else {
nodeA=nodeA.next;
}
//B链表跑到到表尾时,会接着A链表
if(nodeB==null) {
nodeB=headA;
}
else {
nodeB=nodeB.next;
}
}
if(nodeA==null) {
return null;
}
else return nodeA;
}
}