力扣 链表相交

1、链表相交是两个指针相同而非值相同。

class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        ListNode *p=headA,*q=headB;
        int len1=0,len2=0;
        while(p){
            len1++;
            p=p->next;
        }
        while(q){
            len2++;
            q=q->next;
        }
        p=headA;
        q=headB;
        if(len1<len2){
            ListNode *m=p;
            p=q;
            q=m;
        }
        int bu=abs(len1-len2);
        for(int i=1;i<=bu;i++){
            p=p->next;
        }
        while(p){
            if(p==q)
              return p;
            p=p->next;
            q=q->next;
        }
        return NULL;
    }
};

 

posted @ 2023-03-17 16:12  我的秘密小屋  阅读(14)  评论(0)    收藏  举报