![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
链表
LeetCode 题目,不一定是最好的解法,但力求简洁、易懂
Rock在学习
这个作者很懒,什么都没留下…
展开
-
链表刷题目录
名称力扣地址难度标签原创 2023-11-12 08:16:57 · 89 阅读 · 0 评论 -
LCR 029. 循环有序列表的插入(中等)
解释:在上图中,有一个包含三个元素的循环有序列表,你获得值为 3 的节点的指针,我们需要向表中插入元素 2。新插入的节点应该在 1 和 3 之间,插入之后,整个列表如上图所示,最后返回节点 3。给定循环单调非递减列表中的一个点,写一个函数向这个列表中插入一个新元素 insertVal ,使这个列表仍然是循环升序的。请返回原先给定的节点。如果有多个满足条件的插入位置,可以选择任意一个位置插入新的值,插入后整个列表仍然保持有序。给定的可以是这个列表中任意一个顶点的指针,并不一定是这个列表中最小元素的指针。原创 2023-12-11 23:03:05 · 574 阅读 · 0 评论 -
92. 反转链表 II(中等)
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表。输入:head = [1,2,3,4,5], left = 2, right = 4。输出:[1,4,3,2,5]原创 2023-12-11 23:00:52 · 389 阅读 · 0 评论 -
83. 删除排序链表中的重复元素(简单)
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次。返回 已排序的链表。输入:head = [1,1,2]原创 2023-12-11 22:58:53 · 359 阅读 · 0 评论 -
23. 合并 K 个升序链表(困难)
输入:lists = [[1,4,5],[1,3,4],[2,6]]请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。输出:[1,1,2,3,4,4,5,6]将它们合并到一个有序链表中得到。原创 2023-12-10 09:01:36 · 410 阅读 · 0 评论 -
86. 分隔链表(中等)
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。输入:head = [1,4,3,2,5,2], x = 3。你应当 保留 两个分区中每个节点的初始相对位置。输出:[1,2,2,4,3,5]原创 2023-12-10 08:59:21 · 536 阅读 · 0 评论 -
21. 合并两个有序链表(简单)
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]原创 2023-12-10 08:56:39 · 308 阅读 · 0 评论 -
876. 链表的中间结点(简单)
给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。输入:head = [1,2,3,4,5]解释:链表只有一个中间结点,值为 3。输出:[3,4,5]原创 2023-12-10 08:54:20 · 341 阅读 · 0 评论 -
LCR 140. 训练计划 II(简单)
给定一个头节点为 head 的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第 cnt 个训练项目编号。输入:head = [2,4,7,8], cnt = 1。原创 2023-12-10 08:51:52 · 414 阅读 · 0 评论 -
24. 两两交换链表中的节点(中等)
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。输入:head = [1,2,3,4]输出:[2,1,4,3]原创 2023-12-10 08:47:13 · 316 阅读 · 0 评论 -
203. 移除链表元素(简单)
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。输入:head = [1,2,6,3,4,5,6], val = 6。输出:[1,2,3,4,5]原创 2023-12-10 08:18:17 · 524 阅读 · 0 评论 -
234. 回文链表(简单)(LCR 027)
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true;否则,返回 false。输入:head = [1,2,2,1]原创 2023-11-12 15:13:26 · 59 阅读 · 0 评论 -
143. 重排链表(中等)(LCR 026)
不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。输入:head = [1,2,3,4]输出:[1,4,2,3]原创 2023-11-12 15:08:35 · 73 阅读 · 0 评论 -
2. 两数相加(中等)
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]请你将两个数相加,并以相同形式返回一个表示和的链表。解释:342 + 465 = 807.输出:[7,0,8]原创 2023-11-12 14:32:58 · 39 阅读 · 0 评论 -
445. 两数相加 II(中等)(LCR 025)
给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。输入:l1 = [7,2,4,3], l2 = [5,6,4]你可以假设除了数字 0 之外,这两个数字都不会以零开头。输出:[7,8,0,7]原创 2023-11-12 14:29:27 · 35 阅读 · 0 评论 -
206. 反转链表(简单)(LCR 024)
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]原创 2023-11-12 08:24:08 · 45 阅读 · 0 评论 -
160. 相交链表(简单)(LCR 023)
输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,6,1,8,4,5], skipA = 2, skipB = 3。给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。输出:Intersected at ‘8’原创 2023-11-12 08:22:57 · 32 阅读 · 0 评论 -
141. 环形链表(简单)
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true。否则,返回 false。输入:head = [3,2,0,-4], pos = 1。给你一个链表的头节点 head ,判断链表中是否有环。原创 2023-11-12 08:21:56 · 29 阅读 · 0 评论 -
142. 环形链表 II(LCR 022)
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。如果链表无环,则返回 null。输入:head = [3,2,0,-4], pos = 1。输出:返回索引为 1 的链表节点。原创 2023-11-12 08:20:30 · 34 阅读 · 0 评论 -
19. 删除链表的倒数第 N 个结点(中等)(LCR 021)
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head = [1,2,3,4,5], n = 2。输入:head = [1], n = 1。输出:[1,2,3,5]原创 2023-11-12 08:18:28 · 31 阅读 · 0 评论