【数据结构OJ题】链表的中间结点

原题链接:https://leetcode.cn/problems/middle-of-the-linked-list/description/

目录

1. 题目描述

2. 思路分析

3. 代码实现


1. 题目描述

【数据结构OJ题】链表的中间结点_第1张图片

2. 思路分析

快慢指针法。

通过快慢指针找到中间节点,快指针每次走两步,慢指针每次走一步,当快指针走到结尾的时候,慢指针正好走到中间位置。

3. 代码实现

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* middleNode(struct ListNode* head){
    struct ListNode *slow=head,*fast=head;
    while(fast&&fast->next)
    {
        slow=slow->next;
        fast=fast->next->next;
    }
    return slow;
}

【数据结构OJ题】链表的中间结点_第2张图片

你可能感兴趣的:(数据结构,数据结构,c语言,链表,双指针,算法,leetcode)