![](https://img-blog.csdnimg.cn/img_convert/f9d1e01c469a4b72ba0765032a749b84.png)
![](https://img-blog.csdnimg.cn/img_convert/217fde7d16846611ef9c3f646fb09bca.png)
![](https://img-blog.csdnimg.cn/img_convert/313ff62bf9fc8e58e05c3e5b911db8ba.png)
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
if (headA == NULL || headB == NULL) {
return NULL;
}
struct ListNode *pa=headA;
struct ListNode *pb=headB;
while(pa!=pb){
pa=pa==NULL?headB:pa->next;
pb=pb==NULL?headA:pb->next;
}
return pa;
}