不推公式不用證明不斷鏈,求單鏈表中環的入口結點

2021-10-02 01:31:35 字數 740 閱讀 5473

首先看另一道題:ab兩條無環單鏈表,求a、b的第乙個交點,沒有則返回null。

這道題可以根據加法交換律

為什麼呢?因為

假設鍊錶的資料結構為

struct listnode 

};

**可以寫成

listnode* findfirstcommonnode( listnode* phead1, listnode* phead2) 

return p1;

}

回到我們的題目,首先可以用快慢指標來判斷有沒有環,如果有環,快慢指標就會在環內相遇(並且會在慢指標在環內轉一圈前相遇,因為慢指標每運動一次,快指標到慢指標的距離就會-1),本演算法不關心是環內的哪一點相遇,只要是環內的就行了。然後把原來的頭以及相遇節點的下乙個節點分別作為鍊錶a、b的頭,把meet作為a、b鍊錶的末尾,如下圖。

根據上邊的**,當p1到達鍊錶a的末尾即meet的時候,應該轉到鍊錶b的頭,根據圖可知,meet->next就是就是b的頭,而p2到達meet的時候,應該轉向phead1。所以**如下

listnode* entrynodeofloop(listnode* phead)

if(p2)

}return p2;

}

用人不疑,疑人不用

用人不疑,疑人不用,這句古訓是否正確呢?現在的社會也許有很多人認為已經不在適用了,不過我們看待問題還是一分為二,我覺得有不適用的理由,也有適用的理由。不適用的理由,搜尋一下太多了,適用的理由,我就針對最近發生到我身上的事說一說 公司要買一台伺服器託管,我是公司的it負責人,自然就是我來搞這些了,首先...

用人不疑,疑人不用

用人不疑,疑人不用,這句古訓是否正確呢?現在的社會也許有很多人認為已經不在適用了,不過我們看待問題還是一分為二,我覺得有不適用的理由,也有適用的理由。不適用的理由,搜尋一下太多了,適用的理由,我就針對最近發生到我身上的事說一說 公司要買一台伺服器託管,我是公司的it負責人,自然就是我來搞這些了,首先...

華為雲推官招募 加入雲推官,月入8萬的兼職不是夢

摘要 這個夏天,如果有乙份不用風吹日曬 時間靈活,能月賺8萬的工作近在眼前,你會心動嗎?無論你是菜鳥碼農,還是資深it專家,無論你是自 大v 還是小v,無論你是朋友圈狂人,還是抖音愛好者,是不是以為在忽悠?且看官方詳細規則,只要按照步驟來,動動手指月入上萬不是夢。參與活動物件 已實名認證的個人使用者...