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;
}
结果就是通过咯