LeetCode
cjdm66
码畜
展开
-
LeetCode.21 合并两个有序链表
问题描述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4/** * Definition for singly-linked list. * struct List原创 2018-08-04 13:36:38 · 120 阅读 · 0 评论 -
LeetCode.86 分隔链表
问题描述 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3 输出: 1->2->2->4->3->5具体思想:找到第一个大于或等于x的数,以它为基准...原创 2018-08-05 21:35:39 · 133 阅读 · 0 评论 -
LeetCode.19 删除链表的倒数第N个节点
问题描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?一趟扫描具体思想: 设置一个虚拟头结点,后创建两个指针...原创 2018-08-05 21:02:02 · 165 阅读 · 0 评论 -
LeetCode.92 反转链表 II
问题描述 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明: 1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL利用q->next到p的翻转的办法。简单题。/** * Definit...原创 2018-08-05 00:12:12 · 209 阅读 · 0 评论 -
LeetCode.142 环形链表 II
问题描述 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。说明:不允许修改给定的链表。进阶: 你是否可以不用额外空间解决此题?主要不能使用额外空间较为困难,先判断环,之后找到相遇点,将其中一个指针指向头结点,两指针同时走,相遇即为环入口。推导过程为 :设开头到相遇点的距离为a,开头到入口的距离为b,相遇点到入口的向右距离为c,则有公式 a+c+a-...原创 2018-08-04 23:15:18 · 666 阅读 · 0 评论 -
LeetCode.141. 环形链表
问题描述 给定一个链表,判断链表中是否有环。进阶: 你能否不使用额外空间解决此题?使用快慢指针,简单题。快慢指针还可用在找单链表的中点中。 此题还可用哈希表。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * ...原创 2018-08-04 21:06:00 · 139 阅读 · 0 评论 -
LeetCode.234 回文链表(要求O(n)时间O(1)空间 一个很棒的链表综合应用)
问题描述 请判断一个链表是否为回文链表。示例 1:输入: 1->2 输出: false示例 2:输入: 1->2->2->1 输出: true进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?此题不难,难就难在拓展,如何再O(1)空间O(n)时间内解出此问题。 此题综合了找链表中点与翻转的问题,利用 No.876 的思...原创 2018-08-04 20:31:16 · 373 阅读 · 0 评论 -
LeetCode.876 链表的中间结点
问题描述 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返回了一个 ListNode 类型的对象 ans,这样: ans.val = ...原创 2018-08-04 18:30:57 · 424 阅读 · 0 评论 -
LeetCode.203 删除链表中的节点
问题描述 删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5/** * Definition for singly-linked list. * struct ListNod原创 2018-08-04 17:48:13 · 146 阅读 · 0 评论 -
LeetCode.83 删除排序链表中的重复元素
问题描述 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2 输出: 1->2示例 2:输入: 1->1->2->3->3 输出: 1->2->3/** * Definition for singly-linked list. * stru原创 2018-08-04 16:56:03 · 128 阅读 · 0 评论 -
LeetCode.237 删除链表中的节点
问题描述 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数...原创 2018-08-04 16:21:20 · 174 阅读 · 0 评论 -
LeetCode.206 反转链表
问题描述 反转一个单链表。示例:输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题?原创 2018-08-04 16:00:15 · 150 阅读 · 0 评论 -
LeetCode.61 旋转链表
问题描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->1->2->3->4->NULL 向右旋原创 2018-08-23 17:10:28 · 132 阅读 · 0 评论