题解 | 两个链表的第一个公共结点
确实m+n的思路是比较难想和巧妙的,但是如果按照按照《剑指offer》一题题练下来,其实不难想到把两个链表都反转然后从头找起的方法。由于反转链表的时空为O(n)&O(1),故本题也可达到时空O(n)&O(1)的要求
另一方面,在本题尝试用两个链表连接解题时,犯了一个空指针异常的错误。因为head1.val
和 head2.val
的比较可能导致空指针异常。假设在 head1 == null
或 head2 == null
时,程序会试图访问 null
的 val
属性,导致 NullPointerException
。因此如果我的指针可能是null,那么我就要避免出现对指针val的比较