
链表
lyd1995
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode链表相关解题技巧
之前刷leetcode,很多链表的题目刷起来很慢,很费劲,说到底,对链表这个数据结构有种不信任感,因为每次经过一个节点之后就没有办法返回了(单项链表),平时用习惯了数组,对这种变化有点不适应。 这里说一说我在刷题过程中解决链表相关问题所用的技巧,以及如何更好的使用链表 一、dummyHead leetcode里面传进来的head是带有数据的,这个没有任何节点指向head,因此对head的修改有时会...原创 2019-08-23 08:11:14 · 351 阅读 · 0 评论 -
LeetCode142-环形链表 II
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 说明:不允许修改给定的链表。 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:tail connects to node index 1 解释:...原创 2019-04-17 21:47:05 · 138 阅读 · 0 评论 -
LeetCode328-奇偶链表
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 输入: 1->2->3->4->5->NULL 输出: 1->3->5->2-&g...原创 2019-04-17 22:10:18 · 139 阅读 · 0 评论 -
LeetCode92-反转链表 II
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL 一、思路 使用双指针加向量的方法,向量存放链表的值,指针一快一慢,两者相差n-m,等到快的那个到达第n个...原创 2019-04-26 22:37:20 · 140 阅读 · 0 评论 -
LeetCode114-二叉树展开为链表
给定一个二叉树,原地将它展开为链表。 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 一、思路 为了将一颗二叉树展开,需要: 展开该二叉树的左子树 展开该二叉树的右子树 将展开...原创 2019-06-12 16:42:49 · 118 阅读 · 0 评论 -
LeetCode138-复制带随机指针的链表
给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的深拷贝。 示例: 输入: {"$id":"1","next":{"$id":"2","next":null,"random":{"$ref":"2"},"val":2},"random":{"$ref":"2"},"val":1} 解释: 节点 1 的值是 1,它的下一个指针和随机指针...原创 2019-06-30 18:24:41 · 177 阅读 · 0 评论 -
LeetCode143-重排链表
给定一个单链表 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...原创 2019-06-30 19:57:09 · 242 阅读 · 0 评论 -
LeetCode147-对链表进行插入排序
对链表进行插入排序。 插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。 插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所...原创 2019-06-30 20:11:53 · 244 阅读 · 0 评论