160.相交链表
思路:
ab两个链表进行拼接抵消长度差
a第一次走完接上b,b第一次走完接上a
最终会同时遍历到末尾
代码:
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
ListNode* a=headA;
ListNode* b=headB;
while(a!=nullptr && b!=nullptr){
if(a==b)//如果相交
return a;
a=a->next;
b=b->next;
if(a==nullptr && b==nullptr){ //同时遍历到末尾不相交
break;
}
if(a==nullptr){ //a第一次到头接上b
a=headB;
}
if(b==nullptr){ //b第一次到头接上a
b=headA;
}
}
return nullptr;
}
};