天天看點

連結清單找中點-快慢指針

  1. 偶數個節點,slow指向中點右側,奇數個節點,slow指向中間節點的下一個節點。即總是指向右側的頭節點
  2. 偶數個節點,slow指向中點左側,奇數個節點,slow指向中間節點,可以友善斷鍊。即總是指向左節點的尾節點
//偶數個節點,slow指向中點右側,奇數個節點,slow指向中間節點的下一個節點
        //ListNode* fast = head;
        //ListNode* slow = head;
        //while(fast){
            //fast = fast->next;
            //slow = slow->next;
            //if(fast == nullptr) break;
            //fast = fast->next;
        //}      
//偶數個節點,slow指向中點左側,奇數個節點,slow指向中間節點,可以友善斷鍊
        ListNode* fast = head->next;
        ListNode* slow = head;
        while(fast != nullptr && fast->next != nullptr){
            slow = slow->next;
            fast = fast->next->next;
        }