LeetCode 相交鍊錶

2021-08-28 19:50:29 字數 685 閱讀 2186

編寫乙個程式,找到兩個單鏈表相交的起始節點。

例如,下面的兩個鍊錶

a:          a1 → a2

↘c1 → c2 → c3

b: b1 → b2 → b3

在節點 c1 開始相交。

注意:

思路1:先使兩個鍊錶等長,然後一起遍歷兩個鍊錶 ,第乙個相等的即為所求的起始結點。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

while(b->next!=null)

if(a != b) return null; //若a和b尾結點不一樣,則可直接判斷無相交結點。

a = heada;

b = headb;

//保證b鍊錶長於a鍊錶

if(n > m)

int i=0;

while(b!=null && n+i != m)//使a和b等長

while(a!=null && b!=null)

}};

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放到表裡,然...

LeetCode 相交鍊錶

先計算出兩個鍊錶的長度 o n 將長的乙個鍊錶的指示指標移動到和短鍊錶相同長度 o n 兩個鍊錶指示指標同時向前移動,直到二者相同或者null definition for singly linked list.struct listnode class solution while b next ...