劍指offer 連結串列中環的入口結點 python
阿新 • • 發佈:2018-12-26
題目描述
給一個連結串列,若其中包含環,請找出該連結串列的環的入口結點,否則,輸出null。
樣例
如果有,返回入口節點
如果沒有,返回None
閒話:
之前Leetcode也做過一樣的題,之前用的是快慢節點,如果產生環,快的一定會追上慢的,但是這回看題,完全忘了這個思路,就直接考慮使用字典以節點為鍵,下一個節點為值儲存.
想法一:
使用字典以節點為鍵,下一個節點為值儲存.如果產生環就會返回結點,否則返回None
class Solution:
def EntryNodeOfLoop(self, pHead):
if pHead is None or pHead.next is None:
return None
d1 = {}
while pHead:
if pHead in d1:
return pHead
else:
d1[pHead] = pHead.next
pHead = pHead.next
return None
想法二:
想法二就是快慢結點的方法,想了解這個方法可以訪問我的另一篇部落格
最後
刷過的LeetCode或劍指offer原始碼放在Github上了,希望喜歡或者覺得有用的朋友點個star或者follow。
有任何問題可以在下面評論或者通過私信或聯絡方式找我。
聯絡方式
QQ:791034063
Wechat:liuyuhang791034063
CSDN:https://blog.csdn.net/Sun_White_Boy
Github:https://github.com/liuyuhang791034063