一種簡單方式理解 鍊錶中環的入口結點

2022-08-13 17:03:10 字數 1146 閱讀 2035

首先分三步

1.  判斷是否存在環,採用快慢指標方法,若指標相遇則存在環

2. 計算環節點的個數,以相遇節點為起點,將乙個指標移動一圈,再次相遇則得到環節點的個數

3. 依舊採用兩指標,並且都指向頭部,讓其中一指標先移動乙個環的節點長度, 然後讓兩指標同時開始後移乙個節點,若兩節點相遇則必在環入口處。

這裡可以理解為, 先移動的指標比後乙個指標始終領先乙個環的長度,若後面的節點移動到環的入口處,則此時先移動的指標仍然要領先乙個環的長度,此時有且僅有兩指標都指向環入口節點。

**如下:

1

/**2

* 1. 判斷是否存在環

3* 2. 存在環則找出環節點的個數

4* 3. 找到環節點的入口5*

@author

zhangsw6*

7*/89

class

listnode 17}

1819

public

class

findcircle

2627

//判斷是否存在環, 採用雙指標方法,若存在環兩指標必定相遇

28boolean flag = false

;29 listnode pslow =head;

30 listnode pfast =head;

31while (pslow != null && pfast != null

) 38}39

40//

若不存在則返回null

41if (!flag) else

5253

//找出入口節點

54 pslow = pfast =head;

5556

//讓乙個指標先走乙個圈的長度,理解為無論如何前面乙個指標領先乙個環的長度。

57//

當後面乙個節點向前移動指向入口處時,前面乙個節點也要領先乙個環的長度,此時有且僅有前面乙個節點指向入口處

58for(int i=0; i)

63while (pslow !=pfast)

6768

return

pslow;

6970}71

7273}74

75 }

mysql 效能統計的一種簡單方式

tps transactions per second 每秒傳輸的事物處理個數 這是指伺服器每秒處理的事務數,支援事務的儲存引擎如innodb等特有的乙個效能指標。計算方法 tps com commit com rollback uptime use information schema selec...

乙個鍊錶中環的入口

乙個鍊錶中包含環,請找出該鍊錶的環的入口結點。思路 第一步,找環中相匯點。分別用slow,fast指向鍊錶頭部,slow每次走一步,fast每次走二步,直到slow fast找到在環中的相匯點。第二步,找環的入口。接上步,當slow fast時,fast所經過節點數為2x,slow所經過節點數為x,...

tomcat配置的另一種簡單方式!!

我想大家都知道在eclipse和myeclipse配置tomcat,deploy and undeploy j2ee projects.但是還有一種非常簡單的方式。就是在tomcat的有個conf資料夾下面有個server.xml,在倒數第4行上面,就是上面加上這樣一條語句就行 第乙個path的值是...