牛客網刷題 鍊錶中環的入口節點

2021-10-18 06:06:33 字數 1499 閱讀 6246

對於乙個給定的鍊錶,返回環的入口節點,如果沒有環,返回null

拓展:你能給出不利用額外空間的解法麼?

輸入描述:

輸入乙個鍊錶

輸出描述:

輸出環的入口節點

輸入

輸出

hash表(使用額外的空間):通過遍歷記錄到hash表的方式找到環形鍊錶的入口

時間負責度:o(n)

空間負責度:o(n)

快慢指標(不使用額外空間):通過快慢指標的方式實現,下面具體介紹:

論證過程:(注意,快慢指標這裡的起點都是0)假設鍊錶中存在環,環的長度為b,非環的長度為b

1、計算 fast 和 slow 走過的路程,這裡我們假設他們走了n圈後相遇

fast = 2slow

fast = slow + nb

公式量表相等:

2slow = slow + nb

得:slow = nb

fast = 2nb

----------------------------------

2、走多少步才能到入口

enter = a + nb

----------------------------------

3、fast指標與slow的第二次相遇

fast = 0;

slow = nb;

fast和slow指標都走了a步:

fast = a;

slow = a + nb

此時他們在入口相遇

通過哈說表。

通過快慢指標,下圖為演示過程,採用力扣的

// 思路1

public

class

solution

else

pos = pos.next;

}return null;

}}

// 思路2

public

class

solution

slow = slow.next;

fast = fast.next.next;

if(slow == fast)

} fast = head;

while

(slow != fast)

return slow;

}}

小夥伴如果想測試的話,可以直接到牛客網這個鏈結做測試

鍊錶中環的入口節點-牛客網

牛客網 高頻面試題 鍊錶中環的入口節點

鍊錶中環的入口節點 牛客題霸 牛客網 題目描述 對於乙個給定的鍊錶,返回環的入口節點,如果沒有環,返回null 拓展 你能給出不利用額外空間的解法麼?如下圖所示,x,y,z分別為鍊錶起始位置,環開始位置和兩指標相遇位置,則根據快指標速度為慢指標速度的兩倍,可以得出 2 a b a b n b c 即...

牛客 鍊錶中環的入口結點

題目描述 給乙個鍊錶,若其中包含環,請找出該鍊錶的環的入口結點,否則,輸出null。1,設乙個快指標fast每次走兩個節點和乙個慢指標slow每次走乙個節點,如果鍊錶中存在環,則快指標和滿指標一定會相遇 2,設頭節點距環入口的距離為a,環入口距快慢指標相遇節點的距離為b,快慢指標相遇節點距環入口的距...

牛客 劍指offer 鍊錶中環的入口節點

題目 鍊錶中環的入口節點 思路 不考慮空間,可以用乙個集合來做。考慮空間 若有環,快慢指標必定會相遇。如下圖 a是鍊錶起始節點,b是環的入口,c是快慢指標相交的位置。相遇時 快指標走過 a b c b 慢指標走過 a b。由於快指標每次移動2步,因此,相遇時,快指標走的路程是慢指標的2倍。所以,有 ...