您的位置:首页 > 其它

【Leecode】 Instersection od Two Linked Lists

2015-10-08 18:47 281 查看
/**
* 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道了!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: