天天看點

C++快慢指針:連結清單中間值

算法

1.設定fast,slow兩個指針指向連結清單頭結點

2.fast每次走兩步,slow每次走一步

3.當fast為空或fast->next為空時結束循環

4.此時slow指向的結點就是連結清單的中間結點

T getmid()
    {
        Node* fast = head;
        Node* slow = head;
        while(fast!=nullptr&&fast->next!=nullptr){
            fast = fast->next->next;
            slow = slow->next;
        }
        return slow->x;
    }
           

繼續閱讀