一道騰訊鏈表面試題

題目:快速找到未知長度單鏈表的中間節點.


普通方法:首先遍歷一遍單鏈表以確定單鏈表的長度L.然後再次從頭節點出發循環L/2次找到
單鏈表的中間節點.
算法複雜度:O(L+L/2)=O(3L/2)
高級方法:利用快慢指針原理,設置兩個指針*searh  *mid都指向單鏈表的頭節點.
其中*search的移動速度是*mid的2倍.當*search指向末尾節點的時候,mid正好指向就在中間了.
算法複雜度:O(L/2)
HashSet沒有get方法 只能通過Iterator來迭代遍歷
因爲他的底層是哈希表,哈希表順序是不確定的.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章