![](https://img-blog.csdnimg.cn/330f75f851784866a318a5b5b911a396.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
力扣题库
文章平均质量分 53
利用 java 解决!!!
梦の澜
至于未来会怎样,要走下去才知道,反正路还很长,天总会亮。
展开
-
Leetcode ---- 20 ----有效括号(Java解法利用栈解决)
题目:力扣 – 20 – 有效括号题目思想:遍历整个字符串,利用栈把所有的左括号都存储起来,当遇到右括号的时候,所遇右括号形状和栈中左括号一致就进行弹栈,当遍历整个字符串后,栈为空证明所有左括号都有与之匹配的右括号,这种情况被称为有效括号,其他情况下均不是有效的字符串无效括号存在以下三种情况:(只简单举一个例子)①、左括号多:②、右括号多:③、左右括号不匹配:代码解决:情况分析:①、匹配情况②、左括号多③、右括号多:④、左右括号不匹配class Solution原创 2022-01-16 21:23:25 · 226 阅读 · 1 评论 -
剑指 offer || 072. 求平方根
声明:该题目来自力扣:剑指 offer || 072. 求平方根题目:参考示例:题目思想:二分法解题思路:规律一、一个数开平方后一定小于其本身规律二、 一个数开平方的结果一定小于等于其本身的一半所以查询条件就是范围内某个数值平方小于 x,该数值 + 1 再平方就大于 x,那么该数值就是 x 开根号的结果代码解析:实例解析:...原创 2022-01-14 11:42:23 · 184 阅读 · 1 评论 -
LeetCode - 2 / 445 / 剑指offer25 - 链表中的二个数字相加(详细)
声明:此类题为力扣链表编号为 2,445,以及剑指offer的第25题文章前言相同点:我们仔细阅读过上面的题后,发现他们其实都是一道题,就是两个链表的每个结点数值相加后组成的一个新的链表不同点:第一道题,新链表的每个结点的数值和两个链表加和的结果顺序是一致的不同点:第二题和剑指offer的题目,新链表的每个结点的数值和两个链表逆置后加和的结果顺序是一致的图解区别:剑指offer和编号445题:总的来说:二者差的就是一步逆序的过程题目大体思路:步骤一、分别遍历两个链表,加和他们的原创 2022-01-06 12:10:17 · 585 阅读 · 4 评论 -
一分钟解决数据结构问题----两两交换链表中的结点(进阶)
此题为力扣中等链表题目???? 文章目录:1️⃣.题目解析2️⃣.代码实现+图解3️⃣.全部代码题目:1️⃣.题目解析题目要求交换两个相邻的交点,该题需要使用一个傀儡结点在不改变结点数值的情况下实现交换,使用傀儡结点依次去把结点重新串联起来,最后返回新链表的头即可2️⃣.代码实现+图解步骤一、定义一个傀儡结点,由于其数值域没有任何意义,所以这里把傀儡结点的数值设置为 1 ListNode newHead = new ListNode(-1);步骤二、设置一个 tmp 用于去遍历原创 2021-11-23 15:38:28 · 517 阅读 · 2 评论 -
一分钟解决数据结构问题-----删除链表的倒数第N个结点
此题为力扣中等链表题目???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:1️⃣.题目解析题目要求我们删除链表倒数第N的结点(N为题目给定的数值),题目的大致思路是:先找到题目要求的这个结点位置,记录好这个结点的前驱,再进行删除即可,原理很简单,需要运用到快慢指针的思想,下面进行具体代码实现2️⃣.代码实现步骤一、先判断链表为不为空,如果为空无法进行删除操作,返回空对象if (head == null){ return null;原创 2021-11-22 16:54:56 · 283 阅读 · 0 评论 -
一分钟解决数据结构问题---两个链表数值相加(简单易理解)
此题为力扣中等链表题目???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:1️⃣.题目解析原创 2021-11-17 11:31:12 · 758 阅读 · 0 评论 -
一分钟解决数据结构问题----移除重复结点(链表未排序)
此题为力扣题库题目???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:1️⃣.题目解析题目需要我们删除链表中重复的结点,注意这里的结点是未经过排序的,所以之前的是删除有序链表的元素方法不适用,需要进行修改,定义一个前驱用于和一个遍历链表的 cur ,把 cur 和 prev 的数值进行一一比对,删除重复的结点即可,下方代码实现2️⃣.代码实现步骤一、定一个前驱 prev 记录链表的开始,用这个 prev 和后面链表的结点数值进行比较ListNode prev =原创 2021-11-14 11:31:14 · 626 阅读 · 0 评论 -
一分钟解决链表问题---链表的中间结点
此题为力扣链表题目:???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:1️⃣.题目解析题目所需:得到链表的中间结点,如果结点个数为单数,得到的是中间的结点,如果结点的个数为双数得到的是两个中间结点靠后的那个结点,此题运用到快慢指针的思想,快指针每次走两步,慢指针每次走一步,就可以得到中间结点2️⃣.代码实现步骤一、先判断链表是不是空,如果为空,无法进行操作,直接返回 nullif (head == null){ return null;原创 2021-11-10 14:52:25 · 315 阅读 · 1 评论 -
两分钟解决链表问题----反转一个链表
此题目为力扣题库的链表题目???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:????1️⃣.题目解析题目要求我们把链表反转,即把原来链表头是现在链表的尾,原来链表的尾是现在链表的头,我们可以定义一个前驱记录前一个结点的位置,一个 cur 遍历链表,实现链表反转即可 ????2️⃣.代码实现步骤一、判断链表是不是空,如果是空,链表无法进行反转,直接返回空对象if (head == null){ return null; }原创 2021-11-10 14:26:08 · 396 阅读 · 0 评论 -
一分钟解决数据结构问题-----链表开始入环的第一个节点
此题为力扣链表题目:???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:1️⃣.题目解析此题需要得到链表环的入口第一个结点,如果没有环返回空,该题需要推导一个公式:即链表到环的入口距离和相遇点到环的距离一致极端条件:一般情况:所以可以得出结论只要找到相遇的位置,相遇位置和链表的起始位置,同时走,当两个结点相遇时,即环的入口的第一个结点2️⃣.代码实现步骤一、判断链表为不为空if (head == null){ return nul原创 2021-11-11 21:59:58 · 776 阅读 · 0 评论 -
一分钟解决数据结构问题----判断链表是否有环
此题为力扣链表题目:???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:1️⃣.题目解析此题需要我们判断链表中有没有环,解题思路依旧运用到快慢指针,快指针一次走两步,慢指针一次走一步,看这俩个指针会不会相遇,如果有环当 fast 走到链表尾时会转回来,有一时刻会与 slow 相遇,这样就可以判断链表中有没有环2️⃣.代码实现步骤一、判断链表为不为空,如果为空,返回 false if(head == null){ return false;原创 2021-11-11 20:55:03 · 551 阅读 · 0 评论 -
一分钟解决数据结构问题---找出两个链表的第一个公共结点
此题为力扣链表题目:???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:1️⃣.题目解析题目要求:两个相交的链表,找到两个链表相交的第一个公共交点,这道题需要定义两个结点类型变量,一个用于指向较长链表(pl),一个用于指向较短链表(ps),较长的 pl 先走两个链表长度的差值步,两个指针再同时走,直到相遇,返回相遇的那个结点2️⃣.代码实现步骤一、先判断两个链表是不是为空,如果有一个为空,链表无法相交,直接返回空对象if (headA == null || hea原创 2021-11-11 20:27:32 · 330 阅读 · 0 评论 -
一分钟解决链表问题----判断链表的回文结构
此题为力扣链表题目:???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:1️⃣.题目解析回文结构即从头到尾遍历出的数值与从尾到头遍历得到的数值一致,即是回文结构,该题需要我们判断一个链表的回文结构,这道题需要用到快慢指针的思想,为了找到链表的中间结点(前面有类似的 oj 题目),从中间结点的下一个结点开始反转后半部分链表(前面有类似的 oj 题目),反转后两个指针一个从头走,一个从尾走,对比结点数值是否一致(分结点个数的奇数和偶数的情况),如果全程一致,最后返回:tru原创 2021-11-11 16:56:23 · 140 阅读 · 0 评论 -
一分钟解决数据结构问题----删除链表重复节点
此题为力扣链表题目:???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:????1️⃣.题目解析题目给定的是一个排序好的链表,所以重复结点的位置也一定是相邻的,此题需要定义一个傀儡结点,把不重复的结点都串连在傀儡结点后面,最后返回第一个不重复结点(新链表的头)即可2️⃣.代码实现步骤一、创建一个傀儡结点,其数值没有任何意义,任意一个数值即可,这里写的数值为 -1ListNode newHead = new ListNode(-1);步骤二、创建一个 tmp 用原创 2021-11-11 16:12:22 · 566 阅读 · 0 评论 -
一分钟解决数据结构问题----分割链表
此题为力扣链表题目:???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:????1️⃣.题目解析题目给定一个数字(比如10)要求比 10 小的数字都出现在大于等于 10 的数值前,这个数值(10)不一定出现在链表中,要求不能改变原来链表的相邻结点的初始相对位置,即初始时如果一个结点在另一个的右边(或者左边)移动后必须还是保持在其右边(或者左边)顺序不可以改变,这道题运用到需要运用到四个指针,运用分别记录位于给定数数值前的开始位置的:bs ,记录位于给定数数值前的结束位置原创 2021-11-11 15:41:53 · 282 阅读 · 0 评论 -
一分钟解决数据结构问题----合并两个有序链表
此题为力扣链表题目:???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:????1️⃣.题目解析题目给的是两个有序的链表,合并后仍需要保持链表的有序性,这道题需要引入一个傀儡结点,把两个链表串联起来,分别比较两个链表的数值大小(为了保证链表的有序性),再将其串联起来,最后判断是哪个链表走到了空,把空的那个链表链接到另外的一个结点目前的位置的后面即可完成链表的合并2️⃣.代码实现步骤一、创建一个傀儡结点,其数值没有任何意义,随便赋值一个数值即可,这里赋值的是 -1原创 2021-11-11 11:31:17 · 312 阅读 · 0 评论 -
一分钟解决数据结构问题----输出该链表中倒数第k个结点
此题为力扣链表题目???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:????1️⃣.题目解析题目要求给定一个下标 k 这个 k 为链表倒数的位置,需要得到的这个倒数结点的数值,利用快慢指针的思想,快指针先走 k - 1 步,slow 和 fast 再同时走,当fast 走到最后一个结点的时候,此时的 slow 刚好是倒数第 k 个结点返回 slow 的数值即可图解代码:2️⃣.代码实现步骤一、定义两个结点类型变量 fast 和 slowListNode fa原创 2021-11-11 10:55:10 · 207 阅读 · 0 评论 -
几分钟解决链表问题---删除链表中等于给定值 val 的所有节点
???? 文章前提:本题为力扣题库链表题目----编号203???? 文章目录:1️⃣.题目解析2️⃣.代码实现3️⃣.全部代码题目:????1️⃣ 题目解析:我们看到题目需要删除链表中等于给定值 val 的所有节点,注意这里删除的是所有结点,既然涉及到删除元素,那么一定需要有一个前驱 prev 保存现有的结点位置,一个 cur 去遍历链表找需要删除的结点,具体如何用代码实现,下面展示:????2️⃣ 代码实现:步骤一、定义一个删除元素的方法:???? public ListNo原创 2021-11-10 11:27:23 · 481 阅读 · 0 评论