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;
}
标签:head,slow,ListNode,fast,next,链表,中间,节点
From: https://www.cnblogs.com/lwx11111/p/16757360.html