![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode刷题
卫星广场冻秋梨
本人部分题解博客为leetcode摘抄,仅供自己复习参考,禁止转载
展开
-
LeetCode445. 两数相加 II进阶版(栈实现)java语言
题目:给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 8 -> 0 -> 7解题思路:利用栈的后入先出的特性来进行计算,可以达到从右往原创 2020-05-08 21:37:51 · 244 阅读 · 0 评论 -
LeetCode02.两数相加(java实现)
题目:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...原创 2020-05-06 15:26:22 · 208 阅读 · 0 评论 -
LeetCode1290. 二进制链表转整数(java实现)
题目:给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例 1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)示例 2:输入:head = [0]输出:0示例 3:输入:head = [1]输出:1示例 4:输入:he...原创 2020-05-06 14:01:55 · 196 阅读 · 0 评论 -
LeetCode206.返回倒数第K个节点(递归+迭代解法)java实现
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解法一:递归class Solution { public ListNode reverseList(ListNode head) { //申请节点,pre和 cur,pre指向null ListNode ...原创 2020-05-05 22:41:11 · 266 阅读 · 0 评论 -
LeetCode160.相交链表(双指针解法)
题目:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注...原创 2020-04-02 14:00:41 · 201 阅读 · 0 评论 -
LeetCode83.删除排序链表中的重复元素
题目:删除排序链表中的重复元素给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3解题思路: 这题考察的是链表中对于指针的运用和理解,在这道题中我们只需要将...原创 2020-03-31 21:17:19 · 192 阅读 · 0 评论 -
LeetCode21.合并两个有序链表(迭代+递归解法)
题目:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题思路: 递归解法: 当链表走到头的时候即为结束,...原创 2020-03-31 20:50:09 · 306 阅读 · 0 评论 -
LeetCode反转链表问题(迭代解法+递归解法)
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?以下为迭代解法:class Solution { public ListNode reverseList(ListNode head) { ...原创 2019-12-16 20:07:23 · 127 阅读 · 0 评论 -
LeetCode回文链表问题(数组解法+双指针结合反转链表解法)
问题:请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路:利用数组的方式1.当链表为空时,直接返回true;2.创建一个数组,当head != null的时候,将链表中的元素逐一放进数组中3.设置两...转载 2019-12-10 17:57:24 · 166 阅读 · 0 评论 -
LeetCode环形链表问题(初级+进阶)
题目一:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:tru...原创 2019-12-05 20:20:39 · 222 阅读 · 0 评论 -
LeetCode找到链表中的中间节点(数组解法+快慢指针解法)
题目:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.nex...原创 2019-12-05 17:11:36 · 221 阅读 · 0 评论 -
LeetCode 删除链表中等于给定值 val 的所有节点(虚拟头结点+不设置虚拟头节点)
题目:删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5下面这一版本没有设置虚拟头结点,而是利用了prev指针来找到删除节点的前一个位置,并利用了以下这个逻辑,将重复的节点置空,而不是单纯的跳过去。delNode代表重复的被删除的节点...原创 2019-12-01 17:30:18 · 224 阅读 · 0 评论