美文网首页
查找单链表的中点

查找单链表的中点

作者: Andyzhao | 来源:发表于2015-10-17 17:38 被阅读96次

    给定一个单链表如何高效的找到链表的中点,要求算法复杂度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;
    
      }
    

    相关文章

      网友评论

          本文标题:查找单链表的中点

          本文链接:https://www.haomeiwen.com/subject/ltsacttx.html