/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
ListNode* poia=headA;
ListNode* poib=headB;
while(poia!=poib){
if(poia==nullptr)poia=headB;//空指针的时候转为另外一条链
else poia=poia->next;
if(poib==nullptr)poib=headA;//空指针的时候转为另外一条链
else poib=poib->next;
}//最后要么两个指针指向同一个点结束,要么双指针均为nullptr结束,返回也是nullptr
return poia;
}
};
力扣上的官方题解写的不是太容易理解,这里发布一个易于理解+注释的版本