面试题 02

力扣刷题 面试题 02.07. 链表相交--day4

题目分析

这道题相对简单, 注意找到指针相等的节点。
先要预处理这两个链表, 使其长度一样

解法

ListNode *getIntersectionNode(ListNode *headA, ListNode *headB)
{
    int size1 = 0, size2 = 0;
    ListNode *temp = headA;
    while (temp)
    {
        size1++;
        temp = temp->next;
    }
    temp = headB;
    while (temp)
    {
        size2++;
        temp = temp->next;
    }
    if (size1 > size2)
    {
        for (int i = 0; i < size1 - size2; i++)
        {
            headA = headA->next;
        }
    }
    else if (size1 < size2)
    {
        for (int i = 0; i < size2 - size1; i++)
        {
            headB = headB->next;
        }
    }

    while (headA && headB)
    {
        if (headA == headB)
        {
            return headA;
        }
        headA = headA->next;
        headB = headB->next;
    }

    return nullptr;
}
posted @ 2023-04-23 22:13  chuxin_jian  阅读(15)  评论(0)    收藏  举报