題目:
找出兩個單向鏈表相交的位置
請考慮周全提示:
除了普通情況外,還要考慮環以及2者首尾相連。
參考答案:
最普通的情況下,可以這樣做:
2. 假設長度差爲n,掃描長的鏈表n個節點。
3. 同時掃描兩個鏈表,碰到第一個相同的就是公共節點。
如果有環呢?(別人的方法)
都沒環上面的方法如上,找長度差
都有環就重複環檢測,然後重合的點往前走,要是再回到原來點以前碰到了另一個鏈表的重合點就說明有環
找重合點很簡單,找到環開始點,如果兩個鏈表的環開始點不一樣,那說明重合的是整個環,否則,重複沒環的情況
有環的話,還可以(我的方法):
找到任意環中的點,以此作爲終點,應用沒有環的方法