概述
/**
* 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) {
int lenA=0,lenB=0;
ListNode *tempA=headA;
ListNode *tempB=headB;
//统计AB链的长度
while(tempA){
tempA=tempA->next;
lenA++;
}
while(tempB){
tempB=tempB->next;
lenB++;
}
if(lenA==0 || lenB==0) return NULL;
//保证长度A<B
if(lenA>lenB) return getIntersectionNode(headB,headA);
//对齐
int len_dif=lenB-lenA;
tempA=headA;
tempB=headB;
int i=0;
while(i<len_dif){
tempB=tempB->next;
i++;
}
while(tempA&&tempB&&tempA->val!=tempB->val){
tempB=tempB->next;
tempA=tempA->next;
}
return tempA;
}
};
转载于:https://www.cnblogs.com/julie-yang/p/4660591.html
最后
以上就是活力小蝴蝶为你收集整理的两个链表交集的全部内容,希望文章能够帮你解决两个链表交集所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复