一、双指针
Time:O(m+n) 52ms
m:链表A的长度 n:链表B的长度
/**
* 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 * a=headA;
ListNode * b=headB;
while(a!=b){
//若a不为空,a指向B数组,否则a指向下一个
a=a==nullptr?headB:a->next;
b=b==NULL?headA:b->next;
}
//最后a和b重合,代表找到了相交处,包括相交为空。返回任意一个
return a;
}
};