链表、跳表
链表
Bonbon_wen
To be or not to be!
展开
-
Leecode刷题86. 分隔链表
给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入:head = 1->4->3->2->5->2, x = 3输出:1->2->2->4->3->5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/partition-list著作权归领扣网络所有。商业转.原创 2021-01-19 21:09:23 · 107 阅读 · 0 评论 -
Leecode刷题剑指 Offer 62. 圆圈中最后剩下的数字
0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出:3示例 2:输入: n = 10, m = 17输出:2来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/yu...原创 2021-01-19 08:03:47 · 141 阅读 · 0 评论 -
Leecode刷题143. 重排链表
给定一个单链表L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.来源:力扣(LeetCode)链接:https:/..原创 2021-01-18 00:13:56 · 219 阅读 · 1 评论 -
Leecode刷题328. 奇偶链表
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL示例 2:输入: 2->1->3->5->6->原创 2021-01-17 22:04:46 · 142 阅读 · 0 评论 -
Leetcode刷题234. 回文链表
请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class Solution { .原创 2021-01-14 22:45:44 · 128 阅读 · 2 评论 -
Leetcode刷题25. K 个一组翻转链表
给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当k= 2 时,应当返回: 2->1->4->3->5当k= 3 时,应当返回: 3->2->1->4->5来源:力扣(LeetCode)链接:https://leetcode-...原创 2021-01-14 21:36:19 · 163 阅读 · 0 评论 -
Leetcode刷题24. 两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs著作权归...原创 2020-04-11 23:38:51 · 319 阅读 · 0 评论 -
Leetcode刷题148. 排序链表
给你链表的头结点head,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/...原创 2021-01-10 12:42:27 · 208 阅读 · 0 评论 -
Leetcode刷题83. 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class ..原创 2021-01-17 01:35:36 · 180 阅读 · 2 评论 -
Leetcode刷题92. 反转链表 II
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤m≤n≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注...原创 2021-01-11 07:43:33 · 160 阅读 · 0 评论 -
Leetcode刷题206. 反转链表
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?,请你反转链表,并返回反转后的链表。原创 2020-04-11 21:40:30 · 308 阅读 · 0 评论 -
Leetcode刷题142. 环形链表 II
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。输入:head = [3,2,0,-4], pos = 1。输入:head = [1,2], pos = 0。解释:链表中有一个环,其尾部连接到第二个节点。解释:链表中有一个环,其尾部连接到第一个节点。原创 2020-04-12 16:29:28 · 299 阅读 · 0 评论 -
Leetcode刷题141. 环形链表
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。著作权归领扣网络所有。输入:head = [3,2,0,-4], pos = 1。输入:head = [1,2], pos = 0。解释:链表中有一个环,其尾部连接到第二个节点。解释:链表中有一个环,其尾部连接到第一个节点。输入:head = [1], pos = -1。给定一个链表,判断链表中是否有环。解释:链表中没有环。链接:。原创 2020-04-11 19:09:45 · 310 阅读 · 0 评论 -
Leetcode刷题19. 删除链表的倒数第N个节点
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。原创 2021-01-16 15:29:03 · 162 阅读 · 1 评论 -
Leetcode刷题23. 合并K个升序链表
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。将它们合并到一个有序链表中得到。原创 2021-01-19 23:38:07 · 261 阅读 · 1 评论 -
Leetcode刷题21. 合并两个有序链表
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。原创 2020-04-14 23:59:09 · 370 阅读 · 0 评论 -
Leetcode刷题2. 两数相加
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(LeetCode)链接:https://lee...原创 2020-11-18 23:59:34 · 310 阅读 · 0 评论