力扣:160. 相交链表

160. 相交链表
在这里插入图片描述

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 
{
    
    
    struct ListNode* left=headA;
    struct ListNode* right=headB;
    int lenA=0,lenB=0,gap=0;

    while(left)
    {
    
    
        lenA++;
        left=left->next;
    }
    while(right)
    {
    
    
        lenB++;
        right=right->next;
    }

    if(lenA>lenB)
    {
    
    
        gap=lenA-lenB;
        left=headA;
        right=headB;
    }
    else
    {
    
    
        gap=lenB-lenA;
        left=headB;
        right=headA;
    }

    while(gap--)
    {
    
    
        left=left->next;
    }
    while(left)
    {
    
    
        if(left==right) return left;
        left=left->next;
        right=right->next;
    }
    return NULL;
}

猜你喜欢

转载自blog.csdn.net/congfen214/article/details/129567770