链表中间节点

slow 一次走一步,fast 一次走两步。
那么当 fast 到达链表的末尾时,slow 必然位于中间。

ListNode* middleNode(ListNode* head) {
        ListNode* slow = head;
        ListNode* fast = head;
        while (fast != NULL && fast->next != NULL) {
            slow = slow->next;
            fast = fast->next->next;
        }
        return slow;
    }
posted @ 2022-10-06 11:59  lwx_R  阅读(24)  评论(0)    收藏  举报