
链表
weixin_39137699
阳光,热情,幽默
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 1019 链表中的下一个更大节点
给出一个以头节点head作为第一个节点的链表。链表中的节点分别编号为:node_1, node_2, node_3, ... 。 每个节点都可能有下一个更大值(next larger value):对于node_i,如果其next_larger(node_i)是node_j.val,那么就有j > i且node_j.val > node_i.val,而j是可能...原创 2020-01-29 11:54:57 · 510 阅读 · 0 评论 -
leetcode 147 对链表进行插入排序
对链表进行插入排序: 插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所有输入数据插入完为止。 思路: 链表的插入排序,不能像数组类的插入排序,由后往前找,所以,只能从前往后找。所以这里就当时疑惑。 所以就得从前往后,但是为了避免从大部分...原创 2020-01-19 21:21:33 · 127 阅读 · 0 评论 -
leetcode 92II
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL 思路: 头插法 /** * Definition for singly-linked list. * ...原创 2019-12-22 22:58:36 · 84 阅读 · 0 评论 -
leetcode 142环形链表II
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 说明:不允许修改给定的链表。 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:tail connects to node index 1 解释:...原创 2019-12-14 17:27:38 · 115 阅读 · 0 评论 -
leetcode138复制带随机指针的链表
给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的深拷贝。 示例: 输入: {“KaTeX parse error: Expected '}', got 'EOF' at end of input: …":"1","next":{"id”:“2”,“next”:null,“random”:{“KaTeX parse error: Exp...原创 2019-12-14 17:05:13 · 91 阅读 · 0 评论 -
leetcode24 两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 思路: 1-2 交换,3-4交换===》总是在做一样的事,于是想到递归 这是最优美的方式: public ListNode swapPairs(ListNo...原创 2019-12-13 14:41:44 · 73 阅读 · 0 评论 -
leetcode 82删除排序链表中的重复元素
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 在真实的面试中遇到过 /** * Definition for singly-li...原创 2019-12-13 13:57:58 · 100 阅读 · 0 评论 -
leetcode83 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3 思路: 递归或者迭代 public ListNode deleteDuplicates(ListNode head) { ...原创 2019-12-12 23:16:14 · 73 阅读 · 0 评论 -
leetcode 86 分隔链表
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 输入: head = 1->4->3->2->5->2, x = 3 输出: 1->2->2->4->3->5 /** * Definition for singly-linked...原创 2019-12-10 23:17:02 · 100 阅读 · 0 评论 -
leetcode 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-...原创 2019-12-10 10:33:03 · 104 阅读 · 0 评论 -
leetcode206 反转链表
反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 递归法: 主要是在递归返回的层里做 head.next.next = head; // 反转 head.next = null; 这是把这一情况断开 4–>5–>4 断开开头这个4. public...原创 2019-12-01 20:48:41 · 84 阅读 · 0 评论 -
leetcode 148排序链表
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 输入: 4->2->1->3 输出: 1->2->3->4 示例 2: 输入: -1->5->3->4->0 输出: -1->0->3->4->5 思路: nlogn时间复杂度 ,归并排序 不过这里的想讲的是,链表找中点,必须 ...原创 2019-12-01 20:21:26 · 118 阅读 · 0 评论 -
leetcode 23 合并K个排序链表
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 思路1: 最小堆的方法解决 /** * Definition for singly-linked list. * public...原创 2019-12-01 16:03:43 · 85 阅读 · 0 评论 -
leetcode 21合并2个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路: 分迭代和递归 先讲迭代,设立头节点 再分别判断2个节点的大小再连接,最后肯定有一个链表为空,再主链连接不为空的链表。 public ListNode ...原创 2019-12-01 12:10:01 · 86 阅读 · 0 评论