算法基础------快慢指针

说明

快慢指针上的快慢是指移动步数的长短,也就是每次向前移动速度的快慢。比如,指定快指针每次沿着链表向前移动2步,指定慢指针每次沿着链表向前移动1步。

应用

1、判断单链表是否为循环链表

首先设置快慢指针的起点为链表的头结点,快指针每次向前移动2步,慢指针每次向前移动1步。如果改链表为循环链表,则快指针会在不久后追上慢指针;如果是单链表,则快指针会先到达链表的末尾。利用快慢指针解决这个问题还有一个好处就是不需要知道链表的长度。

2、有序链表中寻找中位数

按快指针走两步,慢指针走一步的结构。快指针的移动速度是慢指针的2倍,所以快指针到达链表末尾时,慢指针到达链表中点。

有两种情况要分开考虑,即链表为偶数长度时,和链表为计数长度时(head节点仍然存储数据)。

当链表为偶数时,快指针只能到达链表的倒数第二个节点;则慢指针的魏志伟上中位数;因此返回(上中位数+下中位数)/ 2;

当链表为奇数时,快指针能到达链表的最后一个节点;则慢指针的位置就是中位数。

相关推荐
alphaTao4 小时前
LeetCode 每日一题 2026/8/24-2026/8/30
python·算法·leetcode
Interview Aid1124 小时前
TikTok OA 四题分享|半小时内 AC,题目基本都是实现题
java·开发语言·算法·面试·职场和发展
顶点多余13 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
罗西的思考15 小时前
【Agentic RL / 强化学习框架】Molt 设计解读
人工智能·算法·机器学习
hahaha601616 小时前
HLS高层次综合设计技巧--C++类和模板
图像处理·人工智能·算法·计算机视觉
多弗朗皮卡丘16 小时前
算法详解4:买卖股票的最佳时机系列(上)
算法
维克兜率天19 小时前
【维克】动量指标家族:RSI、ROC、CCI、Momentum全面解析
python·算法
AI情绪识别开源19 小时前
检信 AI 智能推广平台(代号:JX-Promote)
人工智能·算法·erlang
老当益壮梁奶奶20 小时前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法
不会就选b20 小时前
算法日常・每日刷题--<BFS拓扑排序>4
算法