
链表
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 · 90 阅读 · 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 · 82 阅读 · 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 评论