一、题目
二、解法-遍历
class Solution
{
public:
ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2)
{
ListNode* p1 = pHead1;
ListNode* p2 = pHead2;
while(p1!=p2)
{
if(p1!=p2)
{
if(p1==nullptr)
{
p1 = pHead1;
}
else
{
p1 = p1->next;
}
if(p2==nullptr)
{
p2 = pHead2;
}
else
{
p2 = p2->next;
}
}
}
return p1;
}
};
通过->next遍历两个数组直到找到两个相同或都为空。
tip:两个链表不用分别循环,每次循环同时进一位,到达末端的链表重新到最开始继续循环,直到两个链表同时到末端或找到了两个链表的公共环。



