leetcode 160 相交链表
题目描述看起来有点让人匪夷所思,看了题解还是不懂为什么要这么搞,但是双指针的方法还是很巧妙的,使用两个指针遍历A,B两个链表,分别到达尾节点后就赋予另外一个节点的头结点值,之后继续遍历,最后会在相交节点汇合。
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;
}
};

浙公网安备 33010602011771号