輸入兩個鍊錶,找出它們的第乙個公共結點。本題的思路很簡單,首先我們考慮一種特殊的相交鍊錶,如下圖所示:
兩個相交的鍊錶長度相同,想要找到第乙個公共的節點很簡單,維護兩個指標,從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...