各位CSDN的uu们你们好呀,今天,小雅兰愉快的刷题内容是链表的中间结点。嘿嘿,小雅兰的单链表还在偷懒ing,一直没有更新,最近应该会更新出来。下面,就让我们进入链表的中间结点的世界吧。
![](https://img-blog.csdnimg.cn/e99cd62ba5bc407fa0e146d707ce722d.png)
方法一:快慢指针法
这种方法真的是一个绝绝子的方法呢!!!
定义两个结构体指针,一个为慢指针slow,一个为快指针fast
slow每次走一步,fast每次走两步
![](https://img-blog.csdnimg.cn/f0a3dbfb76124f5facf8f5107e3ae0c4.png)
上述是奇数个结点的情况
下面,我们来看看偶数个结点的情况
![](https://img-blog.csdnimg.cn/b327abde5a7b401eadcdeb62b25d46a7.png)
好啦,下面让我们来看看源代码:
struct ListNode* middleNode(struct ListNode* head){
struct ListNode*slow=head;
struct ListNode*fast=head;
while(fast!=NULL&&fast->next!=NULL)
{
slow=slow->next;
fast=fast->next->next;
}
return slow;
}
![](https://img-blog.csdnimg.cn/be99e22fd0f84f15b255c9827355fcb1.png)
哈哈哈,这就是非常愉快的一次刷题记录啦,方法真的很哇塞呢!!!
好啦,小雅兰今天的内容就到这里啦,还要继续加油刷题噢!!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)