1.题目描述
题目链接:876. 链表的中间结点 - 力扣(LeetCode)
我们先看题目描述:


2.解题思路
我们用画图用快慢指针来解决这个问题
定义一个快指针fast,一个慢指针slow

快指针一次走两个结点,慢指针一次走一个结点
当快指针指向NULL或者快指针的下一个结点指向NULL的时候,慢指针刚好走到中间结点


有了这个思路呢,那我们就可以开始写代码了
3.代码
struct ListNode* middleNode(struct ListNode* head)
{
struct ListNode* fast=head,*slow=head;
while( fast && fast->next )
{
slow=slow->next;
fast=fast->next->next;
}
return slow;
}
结果就是通过咯
















![C++初阶 | [三] 类和对象(中)](https://img-blog.csdnimg.cn/c5aa20b18d404aba8882d21a4dab04b4.png)



