/*
你要做的事情是 写代码
增加链表长度使A,B两个链表长度相同。
A+B = B+A 。
多遍历一次链表。从A链表开始遍历完后遍历B链表
同理B链表 遍历完后遍历A链表。
直到找到同一个指针。
*/
class Solution {
public:
ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
ListNode *p1 = pHead1, *p2 = pHead2;
while(p1 != p2){
if(!p1) p1 = pHead2;
else p1 = p1->next;
p2 = p2?p2->next:pHead1; // 当指针为空时,该从另一个链表表头遍历。
}
return p1;
}
};
京公网安备 11010502036488号