O
问题
解决方案
代码
class Solution {
public:
ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
int length1 = 0 , length2 = 0;
ListNode* temp1 = pHead1,*temp2 = pHead2;
while(pHead1){
length1++;
pHead1 = pHead1->next;
}
while(pHead2){
length2++;
pHead2 = pHead2->next;
}
if(length2> length1){
for(int i = 0;i<length2-length1;i++){
temp2 = temp2->next;
}
}
else{
for(int i = 0;i<length1-length2;i++){
temp1 = temp1->next;
}
}
while(temp2!= temp1){
if(temp2)temp2 = temp2->next;
else temp2 = pHead2;
if(temp1)temp1 = temp1->next;
else temp1 = pHead1;
}
return temp1;
}
};
总结与反思
- 注意考虑边界问题。