
leetcode刷题/链表篇
文章平均质量分 63
公仔面i
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode链表篇总结
文章目录前言leetcode刷题链表题型和技巧一.设计链表二.链表双指针法三.寻找环路前言链表篇的基础题已经做完了,总结一下,链表篇的难度总体不算大,因为链表在数据结构中学的比较多.自己做过链表设计之类的,所以完成起来并不算难.只是有些方法确实有点巧妙,需要用到数学推导,不过弄懂之后很舒服leetcode刷题链表题型和技巧一.设计链表基础链表的设计,主要是头插,尾插,插入,删除,按位查询等.链表可以设置头节点的和不带头节点的,leetcode上都是不带头节点的,所以需要时可以设置一个头原创 2021-07-13 22:03:07 · 347 阅读 · 0 评论 -
leetcode刷题/链表 142. 环形链表 II(哈希表,图解快慢指针)
142. 环形链表 II题意:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链原创 2021-07-12 09:38:34 · 194 阅读 · 0 评论 -
leetcode刷题/链表 141. 环形链表(哈希表,快慢指针)
141. 环形链表题意:给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?示例 1:输入:he原创 2021-07-12 09:35:46 · 181 阅读 · 0 评论 -
leetcode刷题/链表 面试题 02.07. 链表相交
面试题 02.07. 链表相交题意:给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value =原创 2021-07-11 13:45:38 · 188 阅读 · 0 评论 -
leetcode刷题/链表 19. 删除链表的倒数第 N 个结点
19. 删除链表的倒数第 N 个结点题意:给你一个链表,删除链表的倒数第 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]解题思路:运用快慢指针解法,一个指针在前,一个指针在后.而且还设置了头指针,方便删除头节点.先让快指原创 2021-07-10 09:16:53 · 183 阅读 · 0 评论 -
leetcode刷题/链表 234. 回文链表
234. 回文链表题意:请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true解题思路:开始想着创建多个节点来存储,但是不太实际.后来看到大佬说可以用数组做,先把链表转化为数组,之后用双指针就可以完成.代码:/** * Definition for singly-linked list. * struct ListNode { * int val; *原创 2021-07-09 22:19:01 · 120 阅读 · 0 评论 -
leetcode刷题/链表 92. 反转链表 II(0ms,图解)
92. 反转链表 II题意:给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例 2:输入:head = [5], left = 1, right = 1输出:[5]解题思路:沿用三指针的反转,判断left和rig原创 2021-07-09 10:14:48 · 150 阅读 · 0 评论 -
leetcode刷题/链表 206. 反转链表(图解)
206. 反转链表题意:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]解题思路:运用三个指针,从第二个节点开始.存储他的前驱节点和后继结点(为了断掉连接之后找到节点)让当前节点指向它的前驱节点三个指针全部下移循环2,3步直到当前节点为空节点原创 2021-07-08 23:44:03 · 236 阅读 · 0 评论 -
leetcode刷题/链表 707. 设计链表
707. 设计链表题意:设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点原创 2021-07-08 16:03:26 · 131 阅读 · 0 评论 -
leetcode刷题/链表 203. 移除链表元素
203. 移除链表元素题意:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]解题思路:虚拟一个头节点,使得循环可以一致化.然后遍历链表,原创 2021-07-07 23:36:31 · 212 阅读 · 0 评论