讨论/《链表》 - 相交链表/
《链表》 - 相交链表

自己想到两种解法,一个是暴力双层循环遍历,另一个是哈希表存一个链的地址,再遍历另一个链,找有没有一样的。
看了大佬们的双指针,那句走到尽头见不到你,于是走过你来时的路,等到相遇时才发现,你也走过我来时的路。爱了爱了

class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        ListNode*head1=headA;
        ListNode*head2=headB;
        while(head1!=head2)
        {
            head1=head1?head1->next:headB;//本萌新看不懂这个三目运算符
            head2=head2?head2->next:headA;//原来是head1=(head1?head1->next:headB)
        }
        return head1;
    }
};

当两个链表不相交时,怎么也是返回head1嘞,原来当他们不相交时,其实最后他们都到了nullptr
算是一种相交于null啦,所以返回head1就是返回null。

1
展开全部 14 讨论