160. Intersection of Two Linked Lists - Easy

前往題目

想法

  • Hashset
  • Two pointers

思路

  1. 兩個指針,分別給ab
  2. 循環直到這兩個指針指向同一個元素
  3. 每次循環都檢查是否指到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/
作者
Simon Lai
發布於
2024年9月27日
許可協議