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; } };