思路: 设置快慢指针,快指针走两步,慢指针走一步,快指针走到链表结尾时,慢指针正在链表中间 代码: class Solution { public: ListNode* middleNode(ListNode* head) { ListNode *fast=head,*slow=head; while(fast->next){ fast=fast->next; slow=slow->next; if(fast->next)//这里与循环条件是一样的,防止fast走出链表 fast=fast->next; } return slow; } };