【leetcode160】相交链表
双指针
leetcode极简笔记,主要想记录自己写的辣鸡代码
有考虑先计算两链表长度,再按长短来移动双指针初始值,但是需要保持链表原始结构,且这样太复杂,两指针都各遍历一遍两链表即可达到以上效果
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
if (headA == nullptr || headB == nullptr) {
return nullptr;
}
ListNode *pa=headA,*pb=headB;
while(pa!=pb){
pa=(pa==nullptr?headB:pa->next);
pb=(pb==nullptr?headA:pb->next);
}
return pa;
}
};