LeetCode 142. 环形链表(快慢指针)
142. 环形链表哈希表思路这种解法通过哈希表,当成环时(即再次访问到之前访问过的元素时),可以判断是环,反之则不是。代码实现class Solution { public: ListNode *detectCycle(ListNode *head) { unordered_set<ListNode *> visited; while ...

快慢指针@Leetcode —— 返回链表中间节点、倒数第k个节点
@TOC这是两道很经典的题目,都采用双指针中“快慢指针”的思想。这两道题目价值主要在这个思想经验,代码简单。正文开始@边通书1. 返回链表中间节点1.1 题目题目链接:返回链表中间节点1.2 思路及题解:snowflake:1. 慢指针一次走一步,快指针一次走两步。:snowflake:2. 理论上,快指针走到尾,慢指针就在中间节点处了,具体细节要画图。示例中,已经在提示我们要考虑奇数还是偶数个....

【算法攻坚】快慢指针解法
今日题目给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5]示例 2:输入:head = [1], n = 1 输出:[]示例 3:输入:head = [1,2], n = 1 输出:[1]提示:链表中结点的数目为 sz 1 <= sz <= 30 0 <= Node.va....

链表其他问题(快慢指针)
1.回文链表(234-中)问题描述:判断一个链表是否回文,要求: O(n) 时间复杂度和 O(1) 空间复杂度案例:输入: 1->2 输出: false思路:最简单的是使用栈,全部元素入栈,出栈比较一半元素,见代码。如果不使用额外空间。思路如下:快慢指针找到链表的中间位置(左中点);反转链表的前半部分;依次比较判断回文。slow节点记录后半部分,pre记录反转后的前半部分注意:这里我们采用....

链表存在环问题(快慢指针)
1. 判断链表有环 (141-易)题目描述:给定一个链表,判断链表中是否有环,不能使用额外空间。注意:我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。示例 :输入:head = [3,2,0,-4], pos = 1(标识链表情况) 输出:true 解释:链表中....

js算法——查找链表中的环(快慢指针)
题题目出自leetcode。给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则....
高频算法面试题:快慢指针
❝这是公众号《Throwable文摘》发布的第「24」篇原创文章,收录于专辑《算法相关》。❞前提今天(2019-05-10)中午吃饭的时候刷了下技术类型的公众号,看到有前辈过了Ant的高P面试,其中有一道题考查了单链表搜索位于中间的节点的算法。看着算法就饭,觉得解决方案很有趣,于是这里尝试重现一下。场景面试官:如何访问链表中间节点?大佬X:简单地实现,遍历一遍整个的链表,然后计算出链表的长度,进....

一文学会链表快慢指针解题技巧
前言上文 我们详细地学习了链表的基本概念,优缺点,也带大家一步步由浅入深地学习了链表的翻转技巧,这一篇我们来看看链表的另一个解题技巧:快慢指针。快慢指针在面试中出现的概率也很大,也是务必要掌握的一个要点,本文总结了市面上常见的快慢指针解题技巧,相信看完后此类问题能手到擒来。本文将详细讲述如何用快慢指针解决以下两大类问题寻找/删除第 K 个结点有关链表环问题的相关解法寻找/删除第 K 个结点小试牛....

【刷穿 LeetCode】剑指 Offer 22. 链表中倒数第k个节点 :「栈/队列」&「差值法」&「快慢指针」
网络异常,图片无法展示|题目描述这是 LeetCode 上的 剑指 Offer 22. 链表中倒数第k个节点 ,难度为 简单。Tag : 「链表」、「栈」、「队列」、「快慢指针」输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3....

旋转链表 :「快慢指针」&「闭合成环」解法|Java 刷题打卡
网络异常,图片无法展示|题目描述这是 LeetCode 上的 61. 旋转链表 ,难度为 中等。Tag : 「链表」、[快慢指针]给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1: 网络异常,图片无法展示|输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 复制代码示例 2: 网络异常,图片无法展示|输入:head = ....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。