leetcode 相交鍊錶問題

2021-10-11 00:07:54 字數 497 閱讀 7989

目的:找到兩個鍊錶的相交節點並且返回該節點。

示例:在節點c1處相交

演算法思想:因為兩個鍊錶的總長度一定,所以遍歷a+b鍊錶,如果a、b兩節點相交,則末尾節點一定相同。

遍歷兩個單鏈表,若a鍊錶第一次遍歷完後,將該末尾節點指向b鍊錶的頭節點,同理,b鍊錶遍歷完後,將末尾節點指向a鍊錶的頭節點,

如果遍歷途中兩個鍊錶在某個節點相遇,這個節點即為相交節點,如果兩個鍊錶遍歷完後沒有相遇,則兩個鍊錶沒有相交。

public class selectedinternode 

while(resa != resb)

if(resa == null)

if(resb == null)

}selectnode = resa;

return selectnode;}}

LeetCode 相交鍊錶

編寫乙個程式,找到兩個單鏈表相交的起始節點。例如,下面的兩個鍊錶 a a1 a2 c1 c2 c3 b b1 b2 b3在節點 c1 開始相交。注意 思路1 先使兩個鍊錶等長,然後一起遍歷兩個鍊錶 第乙個相等的即為所求的起始結點。definition for singly linked list.s...

Leetcode 相交鍊錶

leetcode 輸入 intersectval 2,lista 0,9,1,2,4 listb 3,2,4 skipa 3,skipb 1 輸出 reference of the node with value 2 輸入解釋 相交節點的值為 2 注意,如果兩個列表相交則不能為 0 從各自的表頭開始...

Leetcode相交鍊錶

public class listnode listnodes new hashset while heada null while headb null return null 寫點 哈哈,拿到題我想到用啥結構做呢?然後想著最近一直在用雜湊解決問題,這題用雜湊呢?可以,搞它!先把鍊錶a放到表裡,然...