静态网站建设广告推广免费平台
目录
- 1.解题思路
- 2.代码实现
1.解题思路
首先分析,如果两个链表的长度不一,假设他们有交点,那么他们的最后一定是相同的,也即是后面为相同的部分,但前面不好说,而又因为长度不一又没法简便的一一对比,因此可以先求出两个链表的长度,并将长链表先往后走两个链表的差值,走后就可一一对应了.
2.代码实现
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB){ struct ListNode *pA=headA;struct ListNode *pB=headB;int numA=0;int numB=0;while(pA){numA++;pA=pA->next;}while(pB){numB++;pB=pB->next;}int tmp=abs(numA-numB);struct ListNode *fast=headA;struct ListNode *slow=headB;if(numA<numB){fast=headB;slow=headA;}while(tmp--){fast=fast->next;}while(fast){if(fast==slow)return fast;fast=fast->next;slow=slow->next;}return NULL;}
结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!