如何判斷兩個無環單鏈表是否相交;如果相交,給出相交的第一個結點
- 將其中一個連結串列首尾相連,檢測另外一個連結串列是否存在環;如果存在,則兩個連結串列相交,而檢測出來的環入口即為相交的第一個結點。
- 如果兩個連結串列相交,那個兩個連結串列從相交點到連結串列結束都是相同的節點。我們可以先遍歷一個連結串列,直到尾部,再遍歷另外一個連結串列,如果也可以走到同樣的結尾點,則兩個連結串列相交。這時我們記下兩個連結串列的長度,再遍歷一次。長連結串列節點先出發前進(長連結串列長度-短連結串列長度)步,之後兩個連結串列同時前進,每次一步,相遇的第一點即為兩個連結串列相交的第一個點。