前言
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。
图示两个链表在节点 c1 开始相交:
一、思路
二、代码实现
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
if (!headA || !headB) return NULL;
struct ListNode *lista = headA, *listb = headB;
while (lista != listb)
{
lista = (lista == NULL ? headB : lista->next);
listb = (listb == NULL ? headA : listb->next);
}
return lista;
}