单链表的中间节点-快慢指针

如何快速查找单链表的中间节点?

快慢指针思路:快指针和慢指针从头开始遍历链表节点,快指针走两步,慢指针走一步,当快指针走到尾部时,慢指针刚好走到中间节点。

ListNode* findMidNode(ListNode* head)  
{  
       ListNode *slow, *fast;  
       slow = head;  
       fast = head;  
        
       while (fast && fast->next)  
       {  
              slow = slow->next;  
              fast = fast->next->next;  
       }  
        
       return slow;  
}  


你可能感兴趣的:(数据结构)