求兩個鍊錶的相交節點(演算法)

2021-06-26 16:35:17 字數 477 閱讀 1551

遍歷第乙個鍊錶 求長度m  

遍歷第二個鍊錶 求長度n  

選擇m和n中較大的那個  

將較長的鍊錶遍歷至第m-n個節點  

然後在兩個鍊錶中同步遍歷,比較next指標是否相等且不為null。  

如果相等,則next指標所指的元素即為交點。  

如果為null,說明兩個鍊錶都到了末端還沒有相交。

**:

node* find(node* head1,node* head2) 

while

(p2)

//o(len2) 

p1=head1; 

p2=head2; 

if(m>n) 

else

//o(abs(len1-len2)) 

while

(p1!=p2) 

//o(min(len1,len2)) 

return

p1; }

求兩個鍊錶的相交節點

編寫乙個程式,找到兩個單鏈表相交的起始節點。輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the node with value 8 輸入解釋 相交節點的值為 8 注意,如果兩個...

尋找兩個鍊錶的相交節點

題目 單鏈表可能有環,也可能無環.給定兩個單鏈表的頭節點head1和head2,這兩個鍊錶可能相交,也可能不相交.請實現乙個函式,如果兩個鍊錶相交,請返回相交的第乙個節點 如果不相交,返回null即可.要求 如果鍊錶1的長度為n,鍊錶2的長度為m,時間複雜度請達到 o n m 額外空間複雜度請達到o...

兩個相交鍊錶

兩個單鏈表相交的一系列問題 題目 在本題中,單鏈表可能有環,也可能無環。給定兩個單鏈表的頭節點 head1和head2,這兩個鍊錶可能相交,也可能 不相交。請實現乙個函式,如果兩個鍊錶相交,請返回相交的第乙個節點 如果不相交,返回null 即可。要求 如果鍊錶1 的長度為n,鍊錶2的長度為m,時間複...