【C++】每日一练(链表的中间结点)
本篇博客给大家带来的是用C++语言来解答找中间结点!
🐟🐟文章专栏:每日一练
🚀🚀若有问题评论区下讨论,我会及时回答
❤❤欢迎大家点赞、收藏、分享!
今日思想:不服输的少年啊,请你再努力一下!
题目描述:
解题方法:快慢指针!
思路:大家请看我们要找的结点总是倒数第三个,那么我们只要快指针先走两步,慢指针走一步 ,只要快指针走到NULL,那就返回慢指针,此时慢指针就是倒数第三个结点。
代码实例:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
typedef struct ListNode ListNode;
struct ListNode* middleNode(struct ListNode* head) {
if(head==NULL)
{
return NULL;
}
ListNode* slow,*fast;
slow=fast=head;
while(fast && fast->next)
{
slow=slow->next;
fast=fast->next->next;
}
return slow;
}
完!!