个人导航网站怎么备案,微网站和手机网站的区别,wordpress 全局置顶,做淘宝联盟网站要多少钱?目录 问题描述示例提示 具体思路思路一 代码实现 问题描述 给你单链表的头结点 head #xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点#xff0c;则返回第二个中间结点。 题目链接#xff1a;链表的中间结点
示例 提示 链表的结点数范围是 [1, 100] 1 请你找出并返回链表的中间结点。 如果有两个中间结点则返回第二个中间结点。 题目链接链表的中间结点
示例 提示 链表的结点数范围是 [1, 100] 1 Node.val 100
具体思路
思路一 使用快慢指针。定义个slow的慢指针每次往后面走一个定义一个fast的快指针每次往后面走两个。当奇数个数据的时候fast的next走到空就停止当偶数个数据的时候fast走到空就停止。
代码实现
//思路1
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
struct ListNode* middleNode(struct ListNode* head) {struct ListNode* slow head;struct ListNode* fast head;while(fast fast-next){slowslow-next;fastfast-next-next;}return slow;
}