160. Intersection of Two Linked Lists - Easy
前往題目
想法
Hashset
Two pointers
思路
- 兩個指針,分別給
a
和b
- 循環直到這兩個指針指向同一個元素
- 每次循環都檢查是否指到
null
,是的話就代表這個list
比較短,所以該指針移到另一個list
的開頭(如此一來就可以完美解決兩個list
長度不一的問題,因為短的會多走一點路等長的追上來)
Code
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode aP = headA;
ListNode bP = headB;
while (aP != bP) {
aP = aP == null ? headB : aP.next;
bP = bP == null ? headA : bP.next;
}
return aP;
}
}
160. Intersection of Two Linked Lists - Easy
https://f88083.github.io/2024/09/27/160-Intersection-of-Two-Linked-Lists-Easy/