力扣160-相交链表

发布时间 2023-12-18 17:48:34作者: metasequoiaa

难度:【简单】

1. 根据自己的思路写一遍,不是最优解没关系,写出来再说。将一个链表遍历并储存到HashSet中,再遍历另一个链表,同时查询当前节点是否已经访问过(HashSet中是否存在)。提交后显示“通过”。

2. 一开始想过双指针,但是想不出来怎么移动。参考官方题解后才明白了“a+c+b=b+c+a”这种转圈方式,只能说数学没学好啊。一个指针指向headA,一个指向headB,同时移动,每次移动一步,自己的链表逛完了就到对方的链表从头逛,如果两个链表相交,那么两个指针会在相交点相遇(走过了一样长的路程)。很像一个行程问题。需要注意循环的结束条件是“两个指针相遇,同时指向相交点或者指向null”,那么循环的条件就是两个指针不相等。