随笔分类 -  LeetCode

LeetCode刷题记录!
摘要:题目传送门:回文链表 请判断一个链表是否为回文链表。 示例1: 输入: 1->2 输出: false 示例2: 输入: 1->2->2->1 输出: true **进阶:**你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 方法一:将链表的值复制到数组中然后使用双指针法 该方法使用了 阅读全文
posted @ 2020-08-27 17:06 南笙北沫 阅读(130) 评论(0) 推荐(0)
摘要:题目传送门:两数相加 II 给你两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 **要求:**不能修改原始链表。 示例: 输入:(7 -> 2 -> 4 -> 3) 阅读全文
posted @ 2020-08-24 21:40 南笙北沫 阅读(130) 评论(0) 推荐(0)
摘要:题目传送门:两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 递归法: 时间复杂度:O(N),其中 N 指的是链表的节点数量。 空 阅读全文
posted @ 2020-08-24 18:19 南笙北沫 阅读(129) 评论(0) 推荐(0)
摘要:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 双指针法: /** * D 阅读全文
posted @ 2020-08-24 10:55 南笙北沫 阅读(78) 评论(0) 推荐(0)
摘要:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例1 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个 阅读全文
posted @ 2020-08-23 20:30 南笙北沫 阅读(119) 评论(0) 推荐(0)
摘要:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 注意点:题目条件中给出的已经是排好序的链表 示例 1: 输入: 1->1->2 输出: 1->2 示例2: 输入: 1->1->2->3->3 输出: 1->2->3 解法一: 递归 思路: 第一步:先找到递归出口,即当链表的head或 阅读全文
posted @ 2020-07-15 15:25 南笙北沫 阅读(130) 评论(0) 推荐(0)
摘要:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 使用了递归的方法,从两个链表的头部依次比较链表节点中值的大小,把值更小的节点返回到新链表的头部 /** * Def 阅读全文
posted @ 2020-07-15 11:35 南笙北沫 阅读(108) 评论(0) 推荐(0)
摘要:反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? JavaScript题解:https://www.bilibili.com/video/BV1x7411i7Dd 阅读全文
posted @ 2020-07-15 09:16 南笙北沫 阅读(119) 评论(0) 推荐(0)
摘要:1、LeetCode 160 相交链表 题目链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点c1开始相交。 示例 1: 输入:inter 阅读全文
posted @ 2020-07-14 17:13 南笙北沫 阅读(107) 评论(0) 推荐(0)