首先分三步
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的值是...