程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 查找單鏈表的中點

查找單鏈表的中點

編輯:C++入門知識

給定一個單鏈表如何高效的找到鏈表的中點,要求算法復雜度O(N),如果讀者遇到過這樣的問題,那麼這個問題就迎刃而解了,驗證鏈表是否有環的問題,使用快慢指針變量鏈表,同理中點問題也可以使用快慢指針實現,慢指針一次移動一個節點,快節點一次移動兩個節點,快指針到達終點時,慢指針指向中點。

LinkNode *FindMid(LinkNode *p){
        if(p == NULL){
                return NULL;
        }
        LinkNode *fast = p;
        LinkNode *slow = p;
        while(fast && fast->next){
                fast = fast->next->next;
                slow = slow->next;
        }
        return slow;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved