Leetcode 160. 相交链表

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

你可能感兴趣的:(leetcode,链表,算法)