国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

面試題快慢鏈表和快慢指針

2020-01-26 14:04:41
字體:
來源:轉載
供稿:網友

騰訊的一道面試題:如何快速找到位置長度單鏈表的中間節點?普通方法,就是先遍歷,在從頭找到2/length的中間節點。算法復雜度是:O(3*n/2)。而更快的方法就是利用快慢指針的原理。

快慢鏈表:利用標尺的思想,設置兩個指針(一快一慢)*serach和*mid,剛開始都指向單鏈表的頭結點。但是*search指針的移動速度是*mid的兩倍。當*search到尾結點的時候,mid剛好到了中間。算法復雜度是:O(n/2)

int GetMidNode(LinkList *L,int elem){  LinkList *search,*mid;  mid = search = L; //指向頭結點  while (search->next != NULL){ //當存在下個結點的時候     if (search->next->next!=NULL) {//檢查下個的下個節點是否為空       search = search->next->next;      mid = mid->next;    }     else      search = search->next;  }  elem = mid->data;  return elem;} 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 邳州市| 凤山县| 大名县| 闻喜县| 纳雍县| 锦州市| 垣曲县| 曲周县| 驻马店市| 牙克石市| 德格县| 江津市| 台州市| 叶城县| 方山县| 怀宁县| 夹江县| 饶阳县| 建湖县| 高密市| 长沙市| 高邑县| 清徐县| 绥江县| 遂宁市| 蚌埠市| 保定市| 筠连县| 泰宁县| 镇康县| 平山县| 南安市| 延安市| 商水县| 泾阳县| 正宁县| 辽宁省| 武强县| 柯坪县| 桂阳县| 濮阳市|