class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
ListNode* pa=headA,*pb=headB;
int la=0,lb=0;
while(pa)
{
la++;
pa=pa->next;
}
while (pb)
{
lb++;
pb=pb->next;
}
pa=headA,pb=headB;
while(la>lb)
{
pa=pa->next;
la--;
}
while(lb>la)
{
pb=pb->next;
lb--;
}
while(pa&&pb&&pa!=pb)
{
pa=pa->next;
pb=pb->next;
}
if(pa==pb)
return pa;
return NULL;
}
};160. Intersection of Two Linked Lists
最新推荐文章于 2022-08-06 10:20:24 发布
本文介绍了一种用于查找两个链表交点的有效算法。该算法首先分别计算两个链表的长度,然后让较长的链表先走多余的步数,最后两链表同时前进直至相遇或到达尾部。通过这种方式,可以确保在没有额外空间开销的情况下找到交点。
812

被折叠的 条评论
为什么被折叠?



