刷題 尋找兩個鍊錶第乙個交點

2021-10-07 13:36:52 字數 648 閱讀 3860

輸入兩個鍊錶,找出它們的第乙個公共結點。

本題的思路很簡單,首先我們考慮一種特殊的相交鍊錶,如下圖所示:

兩個相交的鍊錶長度相同,想要找到第乙個公共的節點很簡單,維護兩個指標,從2個煉表頭開始,逐個節點遍歷對比,相同時就找到了第乙個公共交點。

擴充套件為複雜的情況,兩個鍊錶長度不同時:

這種情況就可以先得到兩個鍊錶的長度,然後同樣維護兩個指標指向頭節點,此時先需要根據兩個鍊錶的長度,將長的指標向後移動長度之差的節點,此時就變為了上面簡單的情況。

class solution 

}if(length1next;}}

//一起向後遍歷鍊錶,相同時返回結果

while(phead1 && phead2)

return nullptr;

}int getlength(listnode *phead)

return res;}};

兩個鍊錶求第乙個公共交點

輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 definition for singly linked list.class listnode public class solution listnode meetno...

leetcode 52 找兩個鍊錶第乙個交點

如下 示例 definition for singly linked list.public class listnode public class solution return a 整體思路 如果兩個鍊錶有交點,那麼我們可以設第一條鍊錶a長度為l1 c,第二條鍊錶b長度為l2 c,其中c代表兩個...

尋找兩個相交鍊錶的第乙個公共節點

尋找兩個鍊錶的第乙個公共節點.cpp defines the entry point for the console application.1.最簡單的方法就是先順序訪問其中乙個鍊錶,在每訪問乙個節點時,都對另外乙個鍊錶進行遍歷,看節點是否相等 直到找到乙個相等的節點位置,如果鍊錶長度分別是m,n...