AcWing 66. 两个链表的第一个公共结点
原题链接
简单
作者:
古娜拉黑暗之神
,
2021-03-07 21:19:21
,
所有人可见
,
阅读 346
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *findFirstCommonNode(ListNode *headA, ListNode *headB) {
//定义两个指针p和q
auto p = headA;
auto q = headB; //这样不用分情况讨论,绝对是太妙了!
while(p!=q){
if(p!=NULL){
p = p->next;
}else{
p = headB;
}
if(q!=NULL){
q = q->next;
}else{
q = headA;
}
}
//跳出while的时候必须有 p == q
return q;
}
};