兩個單鏈表只能存在Y型交叉,不會存在X型交叉。最簡單的方式是直接遍歷到兩個鏈表的最后一個節點,判斷它們是否相同。但這樣做有兩個問題,一是時間較長(尤其是鏈表很長的時候),其次是無法找到第一個交叉的點。應該如何改進呢?
判斷最后一個節點是否相同的辦法并不慢,如果兩個鏈表長度m,n 那么復雜度O(m+n),這是最優的復雜度
第二個問題,如何尋找交叉節點:
指針p、q分別遍歷鏈表a、b,假設q先到達NULL(即 假設a 比 b 長),此時從a的頭發出一個指針t,當p到達NULL時,從b的頭發出s,當s==t的時候即交點.