app开发者需要更新此app怎么解决关键词优化的软件
思路:
重点是两个链表同步前进,同个起点,同样步长,那么我们需要知道两个链表的长度,让长的对齐短的,也就是说,按照图上的示例1,链表A从4开始,那么B要从0开始,也就是我们所说的对齐,剩下就是常规操作了
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB)
{struct ListNode *L=headA;struct ListNode *S=headB;int LenA=0,LenB=0;//用于记录各链表长度int abs;//记录长度差值//1.求出A,B链表各自的长度while(L){LenA++;L=L->next;}while(S){LenB++;S=S->next;}if(LenA>=LenB) {abs=LenA-LenB;L=headA;S=headB;}else {abs=LenB-LenA;L=headB;S=headA;}//2.长链表起始指针pX往前移动,确保两链表同步移动for(int i=0;i<abs;i++)L=L->next;//3.查找是否相交while(L){if(L==S)return L;L=L->next;S=S->next;}return NULL;
}