1. 程式人生 > >如何判斷連結串列是否相交、判斷連結串列有環、判斷相交連結串列第一個交點、判斷環形連結串列入口節點

如何判斷連結串列是否相交、判斷連結串列有環、判斷相交連結串列第一個交點、判斷環形連結串列入口節點

判斷相交: 設定兩個棧,分別將兩個連結串列從第一個節點開始入棧,然後從棧頂開始比較出棧,如果第一個節點相等則相交,交點為最後一個相同節點。
判斷有環:
方法一:使用HashSet遍歷連結串列,並存入節點ID,每遍歷到一個新節點就將其ID與集合中已有ID進行比較,相同則有環,不同則存入集合繼續遍歷直至節點指向NULL則證明無環。
方法二:設定兩個指標,一個fast每次前進2個節點,slow每次前進一個,如果在指標指向null之前fast=slow則證明有環。