1. 题解
将null也作为了一种节点,所以,当两条链表是平行的话,最终他们也都会指向null值这个虚拟节点上。
curA 指向 链表A
curB 指向 链表B
如果走到结尾 指向另一链表的首部重新走
curA 走了 a + c + b
curB 走了 b + c + a
注意:关键点是循环的条件,是 while(curA != curB)
2. 代码
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
ListNode* curA = headA;
ListNode* curB = headB;
while (curA != curB) {
curA = (curA != nullptr) ? curA->next : headB;
curB = (curB != nullptr) ? curB->next : headA;
}
return curA;
}