【Leecode】 Instersection od Two Linked Lists

来源:互联网 发布:c 编程 猜字小游戏 编辑:程序博客网 时间:2024/06/06 23:19
/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {        if(!headA || !headB)    return nullptr;        int aLen = 0,bLen = 0;        int dis = 0;        ListNode* pA = headA;        ListNode* pB = headB;        while(pA){            pA = pA->next;            aLen++;        }        while(pB){            pB = pB->next;            bLen++;        }        pA = headA;;        pB = headB;        if(aLen >= bLen){            dis = aLen - bLen;            while(dis--){                pA = pA->next;            }        }        if(aLen < bLen){            dis = bLen - aLen;            while(dis--){                pB = pB->next;            }        }        while(pA && pB){            if(pA == pB)    return pA;            pA = pA->next;            pB = pB->next;        }        return nullptr;    }};

哈哈,终于刷到第50道了!!

0 0
原创粉丝点击