https://leetcode-cn.com/problems/middle-of-the-linked-list/
object Solution {
/**
* 暴力遍历求解
*/
def middleNode(head: ListNode): ListNode = {
val len = getLength(head)
var cur = head
for(i<-0 until(len/2)){
cur = cur.next
}
cur
}
def getLength(head:ListNode)={
var cur = head
var count = 0
while(cur != null){
count +=1
cur = cur.next
}
count
}
/**
* 快慢指针求解
*/
def middleNode(head: ListNode): ListNode = {
var slow = head
var fast = head
while(fast != null && fast.next != null){
slow = slow.next
fast = fast.next.next
}
slow
}
}
相关推荐
通达信量化打板选股指标公式源码副图
X_2:=3*LOW;X_13:=4;X_14:=3;X_15:=2;X_16:=1;
Scala之(判断循环及元组)
数组的知识点的讲解,包括数组的遍历输出,数组的常用的函数等等。 If判断知识点的讲解,包括三目运算符的讲解,以及CASE模式匹配的简单引入。 For 循环中的遍历以及与breakable的完美结合,去展示相当于java中的continue与break 的 实现。 Do while 与 while的区别于对比及知识点的讲解. (1)判断语句 在Scala中,所有的值都有类型,包括数值和函数。 ①...
别再浪费NFC了!手把手教你用Android手机模拟门禁卡(Mifare Classic破解教程)
本文深入探讨Android NFC技术的核心原理与创新应用,教你如何利用手机模拟门禁卡(Mifare Classic破解教程),解锁智能生活的无限可能。涵盖NFC标签类型解析、HCE开发实战及安全实践,让你的Android设备成为数字生活的万能钥匙。
Scala循环遍历for详解
Scala循环遍历for 1、范围遍历 //i无需提前定义,这里<-理解为左箭头,0-10的数依次指向并赋值给i //这里的to是一个方法,也可以写成i<-0.to(10) //注意,Scala中所有数据都是对象 for(i <- 0 to 10){ println(i) } //输出结果是1-10 //俩个输出结果不包含右边界,但包含左边界 for(i<-Range(0,10)){ println(i) } for
STM32使用内部RC振荡器作为系统时钟开发项目--内晶振启动模板工程
STM32使用内部RC振荡器时,OSC32_IN,OSC32_OUT接法: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法: 2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。 2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出
QT绘制饼图+柱状图+折线图
使用qt绘制,折线图,饼图,柱状图,多柱状图
动态规划(Dynamic Programming)详解:从入门到 LeetCode Hot 100
将一个复杂问题拆分成多个规模更小的子问题,通过保存子问题的计算结果,避免重复计算,最终得到原问题的答案。先看一个经典问题。dp[i] = 以第 i 个元素结尾的最优结果例如最长递增子序列。最长递增子序列不一定以最后一个元素结尾,因此必须遍历整个数组取最大值。dp[i] = 前 i 个元素的最优结果这种情况下,最终答案通常就是dp[n]。关键在于理解 dp 数组的定义。动态规划的核心并不是背诵某个固定模板,而是建立正确的状态定义,并通过状态转移方程解决问题。dp[i] 或 dp[i][j] 表示什么?
AI测试:手把手教你用AI创建流程图「喂饭教程」
本文介绍了如何利用next-ai-draw-io开源项目,通过AI快速生成专业流程图,提升测试工作效率。该工具支持自然语言交互,兼容多种AI模型(如OpenAI、Claude等),并集成draw.io图表引擎,实现实时编辑。
LeetCode 每日一题 2026/11/2-2026/11/8
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步
面试问题总结——关于YOLO系列(一)
自从刚开始接到的第一个面试开始,到现在为止,陆陆续续也参加了许多场,我像是一个刚从新手村出来的小白,一路的打怪升级刷经验,期间遇到了很多不会的,我都会及时记录总结。 到现在仍然清晰记得,第一次去面试的时候,当时被怼的多惨。。。 说明:本人是非科班出身,本科是机械电子工程专业,硕士期间的研究方向是机器学习和深度学习,因为我的简历上有关于YOLO的项目,所以我着重准备了YOLO系列的面试可能遇到的问题。 决定开启这个面试问题总结的系列,包括YOLO、C++的内容、OpenCV的内容和深度学习方面被提问的问题
【部署】Docker部署OpenClaw及常见问题解决(win11)
给AI单独开一个隔离的小容器,AI执行所有命令、下载文件都在这个小盒子里,就算AI被诱导执行危险命令,也不会影响你Win11本机的文件和系统,是必开的安全功能。Docker容器里的OAuth回调,会尝试在你Win11本机的1455端口捕获认证信息,但容器和Win11本机的网络隔离,导致浏览器访问不到这个回调地址。「挂载」就是把你Win11本机的文件夹,共享给容器里的「虚拟小电脑」,两边都能读写文件,比如你想让AI操作你D盘里的代码文件,就需要挂载。
LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)
LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等) 题目描述: 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: - s = s1 + s2 + ... + sn - t = t1 + t2 + ... + tm - |n - m| <= 1 - 交错 是 s1 + t
WorkBuddy最新更新特性(2026-07-21)
WorkBuddy最新更新特性
力扣73 矩阵置零
该解法通过标记含0的行和列来实现矩阵置零。遍历矩阵,用布尔数组记录有0的行和列;再遍历一次,若当前行或列被标记,则置为0。时间复杂度O(mn),空间复杂度O(m+n)。
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
Hash表:两数之和、字母异位词分组、最长连续序列 [力扣 Hot100]
三道高频哈希表应用题:两数之和(利用HashMap快速查找补数)、字母异位词分组(排序后作为键分组)、最长连续序列(通过HashSet去重并仅从序列起点扩展)。核心思想均为借助哈希结构优化查找效率,避免重复计算。同时提及双指针等其他解法思路,体现算法设计中“空间换时间”的典型策略。
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
LeetCode 3105.最长的严格递增或递减子数组:一次遍历
LeetCode 3105.最长的严格递增或递减子数组:一次遍历
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
LeetCode Hot 100 二叉树专题(三):BST 二叉搜索树与右视图(Java)
本专题主线:三题(98 / 230 / 199)共用两把钥匙——BST 的中序序列严格递增,以及遍历中的"层"与"深度"标记。看懂这两点,三题共用一套模板。 结构约定:每题统一分三部分——①题目分析与解题思路(含易错点辨析);②常见解法(附代码)及讲解;③知识点总结。
【双指针|LeetCode1089 复写零】巧用逆向思路,破解原地覆盖陷阱
LeetCode1089.复写零要求原地复写数组中的0,避免覆盖未读元素。正向遍历会因写入操作破坏后续数据,故不可行。正确解法为逆向双指针:先正向预处理确定目标末尾位置,再从后向前复写,遇0写两个0,非0则直接搬运。需特别处理0复写越界情况(仅保留一个0)。时间复杂度O(n),空间复杂度O(1),是原地数组操作的经典范例。
力扣240搜索二维矩阵(二分查找)
本文介绍在力扣240题“搜索二维矩阵II”中,对每一行独立使用二分查找的解法。通过遍历每行并调用二分查找函数判断目标值是否存在,若找到则返回true,否则最终返回false。该方法利用了每行有序的特性,时间复杂度为O(m log n),其中m为行数,n为列数。具体二分查找逻辑可参考作者主页中关于力扣35题“搜索插入位置”的实现。
LeetCode100 94. 二叉树的中序遍历
中序遍历(左根右)通过栈实现,模拟递归过程。从根开始,不断向左走并压栈,直到左子树为空;弹出栈顶节点访问(根),转向其右子树重复流程。样例:1→2→3,遍历顺序为1→3→2。时间复杂度O(n),空间复杂度O(h)。
力扣35搜索插入位置(二分查找)
该题通过二分查找寻找插入位置。使用 mid = (left + right) >> 1 防止整数溢出,等价于 (left + right) / 2,但更安全。当 target <= nums[mid] 时,更新答案并继续向左查找;否则向右。最终返回最小的插入位置,时间复杂度 O(log n),空间复杂度 O(1)。
力扣hot100-滑动窗口最大值
先提交了一版结果用二重循环超时了。我还奇怪不是【困难】吗?这里面因为要判断堆顶元素下标,所以用了pair,来同时存放元素和下标。然后我又学习了官方题解,大根堆的方法。学到了一个新的容器:大根堆。heap.top();// 查看最大的数,不删除。heap.pop();
LeetCode100+拓扑排序+多源BFS+矩阵置零
摘要(≤150字): 三题均考察算法优化与经典思想。矩阵置零通过利用首行首列作标记,实现O(1)空间原地操作;腐烂橘子问题用BFS模拟感染过程,结合新鲜橘子计数判断是否可全部腐烂;课程表问题通过拓扑排序检测有向图是否存在环,基于入度数组与邻接表判断课程依赖是否可行。三者分别体现标记法、广搜传播与图论拓扑的核心应用。
[ 力扣Hot100 ]:双指针
本文总结了力扣中四道经典双指针题:移动零(双指针交换非零元素)、盛最多水的容器(左右指针收缩求最大面积)、三数之和(排序+双指针去重)及接雨水(前后缀最大值计算)。通过双指针技巧,有效优化时间复杂度,提升代码效率,体现其在数组问题中的核心应用价值。
LeetCode 面试经典 150_位运算_只出现一次的数字 II(137_C++_中等)
LeetCode 面试经典 150_位运算_只出现一次的数字 II(137_C++_中等) 题目描述: 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。
LeetCode 11 - 20
LeetCode 题库 11 - 20
4492



被折叠的 条评论
为什么被折叠?



