![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
文章平均质量分 50
Guapifang
这个作者很懒,什么都没留下…
展开
-
LeetCode LCR 026. 重排链表
LCR 026. 重排链表中等128相关企业给定一个单链表 L 的头节点 head ,单链表 L 表示为:请将其重新排列后变为:不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入: head = [1,2,3,4]输出: [1,4,2,3]示例 2:输入: head = [1,2,3,4,5]输出: [1,5,2,4,3]提示:链表的长度范围为 [1, 5 * 104]原创 2023-09-11 23:59:38 · 471 阅读 · 0 评论 -
LeetCode 460. LFU 缓存 -- 哈希查询+双向链表
实现 LFUCache 类:LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象int get(int key) - 如果键 key 存在于缓存中,则获取键的值,否则返回 -1。void put(int key, int value) - 如果键 key 已存在,则变更其值;如果键不存在,请插入键值对。当缓存达到其容量 capacity 时,则应该在插入新项之前,移除最不经常使用的项。原创 2023-03-04 20:12:40 · 585 阅读 · 0 评论 -
LeetCode 146. LRU 缓存 -- 哈希map+双向链表
示例:输入输出解释// 缓存是 {1=1}// 缓存是 {1=1, 2=2}// 返回 1// 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}// 返回 -1 (未找到)// 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}// 返回 -1 (未找到)// 返回 3// 返回 4提示:最多调用 2 * 105 次 get 和 put。原创 2023-03-03 13:40:04 · 211 阅读 · 0 评论 -
LeetCode 92. 反转链表 II
示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例 2:输入:head = [5], left = 1, right = 1输出:[5]提示:链表中节点数目为 n进阶: 你可以使用一趟扫描完成反转吗?原创 2023-02-24 20:46:52 · 68 阅读 · 0 评论 -
LeetCode 160. 相交链表 -- 消除长度差
图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构。自定义评测:评测系统 的输入如下(你设计的程序 不适用 此输入):intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0listA - 第一个链表listB - 第二个链表skipA - 在 listA 中(从头节点开始)跳到交叉节点的节点数skipB - 在 listB 中(从头节点开始)跳到交叉节点的节点数。原创 2023-02-22 18:51:54 · 332 阅读 · 0 评论 -
LeetCode 328. 奇偶链
奇偶链表给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。示例 1:输入: head = [1,2,3,4,5]输出: [1,3,5,2,4]示例 2:输入: head = [2,1,3,5,6,4,7]输出: [2.原创 2022-03-03 11:38:54 · 60 阅读 · 0 评论 -
LeetCode 86. 分隔链表--归并排序
分隔链表给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。示例 1:输入:head = [1,4,3,2,5,2], x = 3输出:[1,2,2,4,3,5]示例 2:输入:head = [2,1], x = 2输出:[1,2]提示:链表中节点的数目在范围 [0, 200] 内-100 <= Node.val <= 100-200 .原创 2022-03-03 11:09:14 · 429 阅读 · 0 评论 -
LeetCode 剑指 Offer 26. 树的子结构 -- dfs
剑指 Offer 26. 树的子结构输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3/ \4 5/ 1 2给定的树 B:4/1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4,1]输出:tru原创 2021-12-05 16:46:27 · 74 阅读 · 0 评论 -
LeetCode 23. 合并K个升序链表 -- 归并排序
合并K个升序链表给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:输入:lists = [.原创 2021-12-03 10:29:37 · 75 阅读 · 0 评论 -
LeetCode 445. 两数相加 II --列表翻转
两数相加 II给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例1:输入:l1 = [7,2,4,3], l2 = [5,6,4]输出:[7,8,0,7]示例2:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[8,0,7]示例3:输入:l1 = [0], l2 = [0]输出:[0]提示:链表的长度范围为 [1, 100].原创 2021-10-12 14:25:27 · 65 阅读 · 0 评论 -
LeetCode 114. 二叉树展开为链表
二叉树展开为链表给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。示例 1:输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6]示例 2:输入:root = []输出:[]示例 3:输入:root = [0]输出:[.原创 2021-10-07 15:04:47 · 47 阅读 · 0 评论 -
LeetCode 82. 删除排序链表中的重复元素 II
删除排序链表中的重复元素 II存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。返回同样按升序排列的结果链表。示例 1:输入:head = [1,2,3,3,4,4,5]输出:[1,2,5]示例 2:输入:head = [1,1,1,2,3]输出:[2,3]提示:链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升.原创 2021-10-07 14:47:55 · 62 阅读 · 0 评论 -
LeetCode 25. K 个一组翻转链表
K 个一组翻转链表给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]示例 2:输入:head = [1,2,3,4,5], k = 3输出.原创 2021-10-06 14:16:57 · 64 阅读 · 0 评论 -
LeetCode 剑指 Offer II 078. 合并排序链表
剑指 Offer II 078. 合并排序链表给定一个链表数组,每个链表都已经按升序排列。请将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:原创 2021-10-06 13:56:57 · 114 阅读 · 0 评论 -
LeetCode 148. 排序链表--归并排序
排序链表给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围 [0, 5 * 104] 内-105 <= Node.val &l.原创 2021-10-06 12:31:57 · 72 阅读 · 0 评论