天天看點

力扣(leetcode) 160. 相交連結清單(走相同的路)

題目在這:​​https://leetcode-cn.com/problems/intersection-of-two-linked-lists/​​

題目分析:

要仔細看題目,題目中要求的是:‘請你找出并傳回兩個單連結清單相交的起始節點’ 。而不是節點所指向的值。

題目是想要找到相交節點的指針~ 其次節點的val是可以重複出現的,僅僅比較val是會出錯的。

思路分析:

有一個方法,就是A指針指向第一個連結清單,B指針指向第二個連結清單,兩個指針同時向後移動。

若A指針已經指向第一個連結清單最後一個了,則下一步就去第二個連結清單的開頭。

同理B指針已經指向第二個連結清單的最後一個了,則下一步就取第一個連結清單的開頭。

連結清單問題 還是看圖來得快

看圖!!!!!

A, B = headA,headB
while A!= B:   # 若不相交  則最後會都跑到null了
    if A:
        A = A.next
    else:
        A = headB
    if B:
        B = B.next
    else:
        B = headA
return      

可以了解成兩個人速度一緻, 走過的路程一緻。那麼肯定會同一個時間點到達終點。