Leetcode 876. 链表的中间结点 快慢指针

原题链接:Leetcode 876. 链表的中间结点

用两个指针 slow 与 fast 一起遍历链表。slow 一次走一步,fast 一次走两步。那么当 fast 到达链表的末尾时,slow 必然位于中间。

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* middleNode(ListNode* head) {
        ListNode* fast=head;
        ListNode* slow=head;
        while(fast!=nullptr && fast->next!=nullptr ){
            fast=fast->next->next;
            slow=slow->next;
        }
        return slow;
    }
};
相关推荐
红豆怪怪3 小时前
[LeetCode 热题 100] 32. 最长有效括号
数据结构·python·算法·leetcode·动态规划·代理模式
参.商.3 小时前
【Day21】146.LRU缓存 (Least Recently Used)
leetcode·缓存·golang
愚润求学4 小时前
【贪心算法】day6
c++·算法·leetcode·贪心算法
AI 嗯啦4 小时前
计算机的排序方法
数据结构·算法·排序算法
l12345sy4 小时前
Day23_【机器学习—聚类算法—K-Means聚类 及评估指标SSE、SC、CH】
算法·机器学习·kmeans·聚类·sse·sc·ch
_Coin_-4 小时前
算法训练营DAY58 第十一章:图论part08
数据结构·算法·图论
scx201310045 小时前
P13929 [蓝桥杯 2022 省 Java B] 山 题解
c++·算法·蓝桥杯·洛谷
YC运维5 小时前
Ansible题目全解析与答案
java·算法·ansible
小欣加油6 小时前
leetcode 912 排序数组(归并排序)
数据结构·c++·算法·leetcode·排序算法