Products
GG网络技术分享 2025-11-10 11:53 4
链表交叉问题是一个常见的算法和数据结构问题, 通常分为以下几种情况:
判断链表是不是存在环,Neng通过迅速磨蹭指针法来解决。具体步骤如下:

slow 和 fast,它们dou指向链表的头节点。slow 每移动一步,fast 每移动两步。slow 和 fast 到头来会相遇。找到环的入口点, Neng利用以下步骤:
计算环的节点数, Neng采用以下方法:
判断两个链表是不是相交, 有以下几种方法:
|l1 - l2| 步,使得两个链表的起点对齐,然后一边遍历两个链表,直到找到相同的节点,即为相交节点。找到相交节点, Neng采用以下方法:
cpp struct ListNode { int val; ListNode *next; ListNode : val, next {} };
ListNode* getIntersectionNode { int lenA = 0, lenB = 0; ListNode *p1 = headA, *p2 = headB;
while {
lenA++;
p1 = p1->next;
}
while {
lenB++;
p2 = p2->next;
}
p1 = headA;
p2 = headB;
int diff = abs;
if {
for {
p1 = p1->next;
}
} else {
for {
p2 = p2->next;
}
}
while {
if {
return p1;
}
p1 = p1->next;
p2 = p2->next;
}
return NULL;
}
Demand feedback