兩個單鏈表的第乙個公共節點

2021-07-03 07:03:53 字數 538 閱讀 6192

題目:求兩個單鏈表的第乙個公共子節點。

思路:我們可以先遍歷兩個單鏈表得到長度,然後求得兩個鍊錶長度的差值,然後讓長的那個鍊錶先走到差值長度位置,然後兩個鍊錶再同時遍歷,直到找到第乙個公共節點。

struct listnode ;

int getlistlength(listnode *head)

return len;

}listnode *findfirstcommonnode(listnode *head1,listnode *head2)

for(int i = 0;i < diff;i++)

while(longlist && shortlist && longlist != shortlist)

listnode *firstcommonnode = null;

if(longlist == shortlist)

firstcommonnode = longlist;

return firstcommonnode;

}

兩個單鏈表的第乙個公共節點

輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 由於單鏈表中節點只能有乙個next指標,所以兩個單鏈表相交,只能是y型的形狀,兩者的尾部重疊,第乙個重疊的節點就是我們要找的第乙個公共節點。假設鍊錶1的長度為a c,鍊錶2...

求兩個單鏈表的第乙個公共節點

求兩個單鏈表的第乙個公共節點。分析 兩個鍊錶的第乙個公共節點之後的部分相同 完全重合 1.當兩個單鏈表a b長度相等時,對兩個單鏈表同時進行遍歷,若節點不相等,則指標分別指向下乙個節點 當a鍊錶的指標等於b鍊錶的指標時,該節點即為第乙個公共節點。2.當兩個單鏈表a b長度不相等時,假設b為兩個鍊錶中...

兩個單鏈表第乙個公共結點

基本概念 兩個鍊錶是單鏈表,如果兩個鍊錶有公共節點,那麼這兩個鍊錶從某一節點開始,它們都指向同乙個節點,之後它們所有的節點都是重合的,不可能再出現分叉。所以拓撲形狀看起來是y型。演算法思想 首先遍歷兩個鍊錶得到它們的長度,就能知道哪個鍊錶比較長,以及長的鍊錶比短的鍊錶多幾個節點。在第二次遍歷的時候,...