![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeedCode
Zero_975
这个作者很懒,什么都没留下…
展开
-
LeedCode--【19】--【删除链表的倒数第 n 个节点】
一、原题要求: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 思路: 使用两个指针,...原创 2018-11-15 21:56:43 · 202 阅读 · 0 评论 -
LeedCode---【237】【删除链表中的节点】
一、原题要求: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9 示例 1: 输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么...原创 2018-11-26 22:32:57 · 174 阅读 · 0 评论 -
LeedCode---【147】【对链表进行插入排序】
一、原题要求: 对链表进行插入排序。 插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。 插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适...原创 2018-11-25 22:34:46 · 182 阅读 · 0 评论 -
LeedCode---【142】【环形链表II】
一、原题要求: 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 说明:不允许修改给定的链表。 解题思路: 创建两个指针一个每次走两步,一个每次走一步,若单链表带环,则在第一个指针不会找到尾节点,而且第一个会在环内已知循环知道和第二个指针相遇才能退出循环,同时返回这个节点位置; 若带环则让快指针指向头结点,然后让两个指针同时走,...原创 2018-11-24 18:52:48 · 170 阅读 · 0 评论 -
LeedCode---【141】【环形链表】
一、原题要求: 给定一个链表,判断链表中是否有环。 解题思路: 判断是否带环:用快慢指针。快指针每走两步,慢指针走一步,如果两者在某个点相遇,则链表带环。 二、代码实现: /** * 原题要求: * 给定一个链表,判断链表中是否有环。 * 思路: * 判断是否带环:用快慢指针。快指针每走两步,慢指针走一步,如果两者在某个点相遇,则链表带环。 * * @ClassName...原创 2018-11-24 18:45:10 · 168 阅读 · 0 评论 -
LeedCode---【24】【两两交换链表节点】
一、原题要求: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3 说明: 你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 解题思路: 使用一个新的节点pre来辅助操作,对要进行交换的链表,每两个的位置进行交换, 并且...原创 2018-11-17 20:13:12 · 153 阅读 · 0 评论 -
LeedCode---【206】【反转链表I】
一、原题要求: 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NUL 二、代码实现: /** * 题目要求: * 反转一个单链表。 * * 示例: * * 输入: 1->2->3->4->5->NULL *原创 2018-11-16 16:01:43 · 223 阅读 · 0 评论 -
LeedCode---92】【反转链表II】
一、原题要求: 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL 示例: /** * 反转从位置 m 到 n 的链表。请使用一趟扫描完成反...原创 2018-11-16 15:54:32 · 159 阅读 · 0 评论 -
LeedCode---【82】【删除排序链表的重复元素II】
一、原题要求: 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 解题思路: h -> 1 -&g原创 2018-11-20 22:59:31 · 143 阅读 · 0 评论 -
LeedCode---【83】【删除链表中的重复元素】
一、原题要求: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3 解题思路:遍历链表,如果pre和cur的val相同的话pre.next = cur.next,然后cur = cur.ne...原创 2018-11-20 22:50:48 · 125 阅读 · 0 评论 -
LeedCode--【86】【分割链表】
一、原题要求: 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: /** * 题目要求: * <p> * 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 * 你应当保留两个分区中每个节点的初始相对位置。 ...原创 2018-11-16 14:20:25 · 180 阅读 · 0 评论 -
LeedCode---【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-11-18 20:26:08 · 143 阅读 · 0 评论 -
LeedCode【021】【MergeTwoSortedLists】
一、原题要求: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 解题思路 * 使用头结点root进行辅助操作,创建一个头结点,再使用两个引用指向两个链表的头结点, * 将较小的结点值的结点摘下来接到r...原创 2018-11-15 22:09:24 · 142 阅读 · 0 评论 -
LeedCode---【203】【移除链表元素】
一、原题要求: 删除链表中等于给定值 val 的所有节点。 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 思路: 递归:每次对头进行判断是否此值等于给定值val,如果相等则将此节点删除,将下一个节点作为头节点递归调用自己,否则将此节点的下一个节点为作为头节点递归调...原创 2018-11-26 22:44:17 · 164 阅读 · 0 评论