160.
代码语言:javascript复制int get_list_length(ListNode *head)
{
int len = 0;
while(head)
{
len ;
head = head->next;
}
return len;
}
ListNode *forward_long_list(int long_len,int short_len, ListNode *head)
{
int delta = long_len - short_len;
while(head && delta)
{
head = head->next;
delta --;
}
return head;
}
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
int list_A_len = get_list_length(headA);
int list_B_len = get_list_length(headB);
if(list_A_len > list_B_len)
headA = forward_long_list(list_A_len,list_B_len,headA);
else
{
headB = forward_long_list(list_B_len,list_A_len,headB);
}
while(headA &&headB)
{
if(headA == headB) return headA;
headA = headA->next;
headB = headB->next;
}
return NULL;
}
};
160.