自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CodingLJ

种树最好的时机是十年前,其次是现在。

  • 博客(56)
  • 收藏
  • 关注

原创 新年快乐——展望未来——青春无悔

回顾2021年,从2月回学校到现在,没有回过家。中间实习了共2家公司。技术确实得到了一定的提升。内心仍不满足现状。对自己的笔试算法不满意,对自己的技术深度不满意。对,技术是积累出来的,算法也是。现在做了大概300道左右了。对一些没遇到的题型还是很棘手。没关系,继续坚持,继续磨。最近发现欠父母挺多的,平时打电话最多。慢慢发现,回家真好。记得有一次回家,到家里的车站大概是晚上11点钟了。爸爸妈妈从9点多一直等着我,见到我很开心很开心。...

2021-12-31 23:18:56 272 2

原创 【回溯算法】【打卡第175道】:《剑指Offer》:JZ38 字符串的排列(字符串包含重复的元素)

1、题目描述输入一个长度为 n 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。2、算法分析这是一道排序算法题,回溯算法中的一种。回溯算法其实是基于递归算法的,在递归的基础上回溯。注意,子结点向父节点进行回溯。模板:void backtracking(参数) { if (终止条件) { 存放结果;.

2021-12-30 22:29:46 533

原创 【回溯算法】【打卡第174道】:leetCode :47. 全排列 II(序列中含有重复元素)

1、题目描述给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。2、算法分析首先这是一个回溯算法的经典排序题目。注意题目中说的是序列中的元素是重复的。回溯算法是基于递归的,而在回溯算法中N叉树的递归思想很重要。尤其是子结点向父节点回溯。首先看下回溯算法的解题模板:void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元

2021-12-30 17:15:19 1216

原创 【数组】【打卡第173道】:leetCode 每日一题:1995. 统计特殊四元组

1、题目描述2、算法分析由于nums.length比较小,for循环模拟过程。3、代码实现class Solution { public int countQuadruplets(int[] nums) { int len = nums.length; int res = 0; for(int i = 0;i < len;i++){ for(int j = i + 1;j < len;.

2021-12-29 23:40:02 356

原创 【回溯算法】【打卡第172道】:leetCode :46. 全排列(序列中元素无重复)

1、题目描述给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。

2021-12-29 23:35:34 692

原创 【数组】【打卡第171道】:leetCode 每日一题 :1078. Bigram 分词

1、题目描述给出第一个词first 和第二个词second,考虑在某些文本text中可能以 "first second third" 形式出现的情况,其中second紧随first出现,third紧随second出现。对于每种这样的情况,将第三个词 "third" 添加到答案中,并返回答案。2、算法分析首先找到first和second后面的third的字符串,然后取出数放到集合中,然后将集合中的数存储到数组中,返回数组。注意,取数的时候是从i = 2开始,数...

2021-12-26 22:33:10 367

原创 【数组】【打卡第170道】:leetCode :283. 移动零

1、题目描述2、算法分析方法1:注意:只能在原数组上操作。两个for循环解决问题:第一个for判断数组中元素不为0的话,nums[j++] = nums[i]第二个for循环最后的元素赋值为零就好方法2:双指针比如:[0,1,0,2,3]left,right起初都指向的是元素0,当nums[right] != 0的时候,交换nums[left] nums[right],要不然left++;①left指向的是0的位置②right和left之间的数是0,..

2021-12-23 23:37:18 892

原创 【面试题详解】Spring中支持几种bean的作用域

这个问题之前可能会问spring的bean的生命周期,引出这个问题:①singleton:单例,spring默认的作用域。默认每个容器只有一个bean的作用域。bean以单例的形式存在,在创建容器的时候就会同时创建一个bean的对象。该对象的生命周期和IOC容器是一样的。②prototype:原型类型。每次从容器中调用bean时,都会创建一个新的对象。注意,在创建容器的时候并没有实例化,当我们获取bean的时候才会去创建一个对象,每次获取的对象不是同一个对象。③request:request域。

2021-12-23 19:59:44 636

原创 【搜索】【打卡第169道】:《剑指Offer》3刷:JZ11 旋转数组的最小数字

1、题目描述有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。数据范围:1 \le n \le 100001≤n≤10000,数组中任意元素的值:0 \le val \le 100000≤val≤10000要求:空间复杂度:O(1)O(1),时间复杂度:O(logn)O(logn)2...

2021-12-22 20:25:31 867

原创 【搜索】【打卡第168道】:《剑指Offer》3刷:JZ4 二维数组中的查找

1、题目描述在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]给定 target= 7,返回true。给定target=3,返回false。数据范围:矩阵的长宽满足0 \le n,m \le 5000≤n,m≤500,...

2021-12-22 14:54:17 108

原创 【数组】【打卡第167道】:leetCode :2种方法:136. 只出现一次的数字

1、题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?2、算法分析方法一:使用Map集合存储。重点讲方法二:异或 ^① 0和任何数异或结果是任何数② 相同的两个数异或结果是0③ 满足交换律:a^b^c = b^a^c3、代码实现方法1:import java.util.*;class Solution ...

2021-12-21 22:26:47 88

原创 【字符串】【打卡第166道】:leetCode: 169. 多数元素

1、题目描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。2、算法分析方法一:使用Map进行key-value的计数。知识补充:map.put(num,map.getOrDefault(num,0)+1);①当num已经存在的话,将num对应的value值+1②当num不存在的话,将num对应的值设置成默认值0,然后value再+1判断map.ge...

2021-12-21 21:35:03 131

原创 【搜索】【打卡第165道】:《剑指Offer》3刷:JZ53 数字在升序数组中出现的次数

1、题目描述给定一个长度为 n 的非降序数组和一个非负数整数 k ,要求统计 k 在数组中出现的次数数据范围:0 \le n \le 1000 , 0 \le k \le 1000≤n≤1000,0≤k≤100,数组中每个元素的值满足0 \le val \le 1000≤val≤100要求:空间复杂度O(1)O(1),时间复杂度O(logn)O(logn)2、算法分析注意:通过二分查找进行找到array[mid] == k的那个中间点mid。遍历mid - 1左边等于k的,...

2021-12-21 19:44:36 151

原创 【字符串】【打卡第164道】:leetCode每日一题:1154. 一年中的第几天

1、题目描述给你一个字符串date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。请你计算并返回该日期是当年的第几天。通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。2、算法分析知识补充:判断闰年条件:year%400 == 0 || (year % 4 ==0 && year % 100 != 0)分以下几步走:①一年有12个月,1,3,.

2021-12-21 16:39:49 809

原创 【数组】【打卡第163道】:leetCode每日一题:475. 供暖器

1、题目描述冬季已经来临。你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。在加热器的加热半径范围内的每个房屋都可以获得供暖。现在,给出位于一条水平线上的房屋houses 和供暖器heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。说明:所有供暖器都遵循你的半径标准,加热的半径也一样。2、算法分析思路:房屋左右侧的热水器,取距离小的那个,最终取的是所有房屋所需最大的那个半径。首先对数组进行排序。对房屋进行遍历,首先定义半径radio,供暖器...

2021-12-21 15:11:28 876

原创 【栈和队列】【打卡第162道】:leetCode ,每日一题 997. 找到小镇的法官

1、题目描述在一个小镇里,按从 1 到 n 为 n 个人进行编号。传言称,这些人中有一个是小镇上的秘密法官。如果小镇的法官真的存在,那么:小镇的法官不相信任何人。每个人(除了小镇法官外)都信任小镇的法官。只有一个人同时满足条件 1 和条件 2 。给定数组trust,该数组由信任对 trust[i] = [a, b]组成,表示编号为 a 的人信任编号为 b 的人。如果小镇存在秘密法官并且可以确定他的身份,请返回该法官的编号。否则,返回 -1。2、算法分析定义两个数组,分..

2021-12-19 21:50:16 104

原创 【详解】map.getOrDefault(num, 0) + 1;map.put(num,map.getOrDefault(num, 0) + 1)

map.getOrDefault(Object key, V defaultValue);①map中存在key,value返回key对应的value即可。②map中不存在key,value则返回defaultValue(默认值)。map.put(num,map.getOrDefault(num, 0) + 1)①map中含有num的话,就将num对应的value值+1②map中不含有num的话,num对应的value对应的默认值赋值为0,然后再+1...

2021-12-18 20:32:19 1642

原创 【栈和队列】【打卡第161道】:leetCode 150. 逆波兰表达式求值

1、题目描述根据 逆波兰表示法,求表达式的值。有效的算符包括+、-、*、/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。2、算法分析这个题是栈的应用。将字符数组中的元素入栈,如果遇到“+”,“-”,“*”,“/”就出栈两个元素。进行计算注意计算的细节:①进栈的元素进行减法的时候,是后出栈的元素减去先出栈的元素②进栈的元素进行除法的时..

2021-12-17 23:49:38 704 2

原创 【栈和队列】【打卡第160道】:leetCode 1047. 删除字符串中的所有相邻重复项

1、题目描述给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。2、算法分析借助栈作为辅助栈,存储的是字符串中的元素,每次向栈中添加元素的时候,都会比较添加的元素和栈顶的元素是否相等,相等话出栈。不等的话进栈。注意是相邻元素的比较。最后别忘记反转栈中剩余的元素。StringBuilder里面有一个reverse()方法,存储的就是反.

2021-12-16 23:08:41 698

原创 【栈和队列】【打卡第159道】:leetCode 503. 下一个更大元素 II

1、题目描述给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。2、算法分析求得是比当前元素更大得第一个元素,然后将第一个大的元素放到当前元素对象的索引位置。注意题目中的nums数组是可以重复的,也就是111151,最后一个1之后的第一个大值是5。所以整个nums数组需要2次遍历,那么怎么2次遍.

2021-12-16 22:41:17 78

原创 【栈和队列】【打卡第158道】:leetCode 739. 每日温度

1、题目描述请根据每日气温列表temperatures,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用0来代替。2、算法分析首先记住一点:只要后面的相邻的一个元素比当前元素大,当前元素的结果集记为1。比如这个:输入: temperatures = [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]先初始化一个数组int[] res = new int[temperatures.leng...

2021-12-15 23:10:33 674

原创 【详解】GC如何判断一个对象是否需要被回收?引用计数法,可达性分析算法

在堆中存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是确定哪些对象还存活着,哪些对象已经死去。 JVM垃圾回收机制中如何判断一个对象是否需要被回收呢? JVM中给出了2种方法:引用计数法,可达性分析算法(1)引用计数法 它是这样描述的:在一个对象中添加一个引用计数器,每当有一个地方引用它得时候,计数器的值就加一;当引用失效时,计数器的值就减一;任何时刻计数器的为零的对象就是不可能再引用的。此时这样的对象...

2021-12-15 14:52:10 888

原创 【栈和队列】【打卡第157道】:232. 用栈实现队列

1、题目描述请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false2、算法分析首先说一下这些方法是干嘛的。MyQueue():初始化定义的栈push(.

2021-12-14 22:14:26 406

原创 【栈和队列】【打卡第156道】: leetCode 20. 有效的括号

1、题目描述给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。2、算法分析题目中说,给你一个字符串,判断这个字符串是否匹配。明显的是一个使用栈进行字符串匹配的问题。不防这样:定义栈存储的是({[ 对应的右括号)}],然后匹配值。最后判断栈是否为null,具体看代码。今天有点困,水一道。3、代码实现public boolean ..

2021-12-13 22:45:15 100

原创 【字符串】【打卡第155道】: leetCode 每日一题:(3种方法)709. 转换成小写字母

1、题目描述给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。2、算法分析方法一:判断每个元素是否在‘A’ -- ‘Z’之间,在的话使用‘a’ -‘A’ 的ascell码差值32,ch += 32就可以。方法二:也是类似,但是实现方式不同,arr[i]+=32;方法三:直接使用API:s.toLowerCase();3、代码实现class Solution { public String toLowerCase(String...

2021-12-12 16:54:11 629

原创 【栈和队列】【打卡第154道】: leetCode 151. 翻转字符串里的单词

1、题目描述给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。2、算法分析需要翻转的单词中两端可能有多余空格,单词和单词之间也有可能有多余的空格。这就需要首先去掉多余的空格。分为三步骤:①去掉字符串首尾的多余的空格,去掉单词中间大于1的空格②翻转整个字符串③翻转每个单词知识补充:StringBuilder sb

2021-12-12 14:39:01 99

原创 【栈和队列】【打卡第153道】: 《剑指Offer》3刷:JZ73 翻转单词序列

1、题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a nowcoder.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?数据范围:进阶:空间复杂度,时间复杂度,保证没有只包含空格的字符串2、算法分析本题有2种解题方法。...

2021-12-12 12:17:52 104

原创 【栈和队列】【打卡第152道】: 《剑指Offer》3刷:JZ31 栈的压入、弹出序列

1、题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。1.0<=pushV.length ==popV.length <=10002.-1000<=pushV[i]<=10003.popV的所有数字均在pushV里面出现过4.pushV...

2021-12-11 19:51:52 91

原创 【栈和队列】【打卡第151道】: 《剑指Offer》3刷:JZ30 包含min函数的栈

1、题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top和min函数操作时,栈中一定有元素。此栈包含的方法有:push(value):将value压入栈中pop():弹出栈顶元素top():获取栈顶元素min():获取栈中最小元素2、算法分析题目让求的是栈中最小的元素。定义两个栈 1、StackData存储的是栈中的元素 2、StackMin存储的是栈中最小的...

2021-12-11 16:48:08 664

原创 【栈和队列】【打卡第150道】: 《剑指Offer》3刷:JZ9 用两个栈实现队列

1、题目描述用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。数据范围:n\le1000n≤1000要求:存储n个元素的空间复杂度为O(n)O(n),插入与删除的时间复杂度都是O(1)O(1)2、算法分析用两个栈实现的是一个队列,注意顺序一定是不能变的,变化的话就不是队列的模拟了。最最重要的一步骤是,判断stack2添加元素...

2021-12-11 16:08:26 671

原创 【两数相加】【打卡第149道】: leetcode 328. 奇偶链表

1、题目描述给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。2、算法分析题目中说将原始链表中的编号为奇数的结点和偶数的结点分开。头结点是奇数结点,头结点的下一个结点是偶数结点。相邻结点的奇偶数不同。不防将奇数结点和偶数结点分离成奇数链表和偶数链表。然后将偶数链表连接在奇数链.

2021-12-10 15:32:52 95

原创 【两数相加】【打卡第148道】: leetcode 415. 字符串相加

1、题目描述给定两个字符串形式的非负整数num1 和num2,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 BigInteger),也不能直接将输入的字符串转换为整数形式。2、算法分析题目中求的是字符串中数字的相加。从字符串的末尾开始遍历,获取下边n1,n2的下标,从后往前开始遍历。carry=sum/10; // 获取进位intc=sum%10; // 获取余数具体看代码。注意:`charA...

2021-12-08 19:26:50 777 1

原创 【链表】【打卡第147道】: leetcode 24. 两两交换链表中的节点

1、题目描述给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。2、算法分析如上图,创建一个虚拟结点dummyHead指向的是链表的head,dummyHead.next = head;定义初始结点temp = dummyHead。也就是每次需要交换temp后面的两个结点。如果 temp 的后面没有节点或者只有一个节点,则没有更多的节点需要交换,因此结束交换。否则,获得 temp 后面的两个节点 n

2021-12-07 22:03:26 404

原创 【链表】【打卡第146道】: leetcode 445. 两数相加 II

1、题目描述给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。2、算法分析本题求的是两个链表的结点值的相加。从最后一个结点开始,两个链表的值开始相加。相加后返回一个新的链表。从链表的结尾相加的。元素是倒叙,毫不疑问使用栈。①分别创建两个栈,存储的是两个链表的结点值②定义进位为carry为0,遍历栈中的元素注意:进位为carry =.

2021-12-07 17:25:04 474

原创 【链表】【打卡第145道】: leetcode 19. 删除链表的倒数第 N 个结点

1、题目描述给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。2、算法分析知识补充:删除链表中的结点做了一些题目比如:①删除链表指定的值②删除链表中重复的结点(保留一个重复元素)③删除链表中重复的结点(去除重复的元素)以及本题的删除倒数第k个结点。倒数K个,毫无疑问双指针。但是本题注意。删除倒数第K个结点,找到导出第k个结点好找,双指针就可以,但是删除倒数第K个结点呢?思考后,我们只需要找到倒数第K个结点的上一个结点即可。也就是slow...

2021-12-06 15:58:15 446

原创 【链表】【打卡第144道】: leetcode 83. 删除排序链表中的重复元素 (重复元素出现一次)

1、题目描述存在一个按升序排列的链表,给你这个链表的头节点head,请你删除所有重复的元素,使每个元素只出现一次。返回同样按升序排列的结果链表。2、算法分析和以下题目进行比较① 删除其中的一个结点:【链表】【打卡第141道】:《剑指Offer》3刷:JZ18 删除链表的节点_CodingLJ-CSDN博客1、题目描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。1.此题对比原题有改动2.题目保证链表中节点的值互不相同3.该题只...

2021-12-06 14:55:29 310

原创 【详解】链表的复制,使用Map集合

①有2个指针,一个指针是next,指向的是下一个结点。一个是random指针,指向的是下一个随机结点。②现在对真个链表进行复制,可以分为2个大部分。第一个部分是复制链表的结点; 第二部分是复制链表的指针。使用Map集合做映射,key代表原链表的结点,value代表的是复制链表的对应的结点。构建新链表的next,random指针。具体看这题:复杂链表的复制_牛客题霸_牛客网...

2021-12-06 12:16:42 526

原创 【链表】【打卡第143道】:《剑指Offer》3刷:JZ35 复杂链表的复制

1、题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。下图是一个含有5个结点的复杂链表。图中实线箭头表示next指针,虚线箭头表示random指针。为简单起见,指向null的指针没有画出。2、算法分析本题是复制链表的复制。A链表 复制为B链表。本题的链表有几个特点①有2个指针,一个指针是n.

2021-12-06 12:11:17 97

原创 【链表】【打卡第142道】:《剑指Offer》3刷:JZ76 删除链表中重复的结点

1、题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5数据范围:链表长度满足,链表中的值满足进阶:空间复杂度,时间复杂度例如输入{1,2,3,3,4,4,5}时,对应的输出为{1,2,5},对应的输入输出链表如下图所示:2、算法分析题目中要求的是删除链表中重复的元素。比如:1-...

2021-12-05 19:38:53 383

原创 【链表】【打卡第141道】:《剑指Offer》3刷:JZ18 删除链表的节点

1、题目描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。1.此题对比原题有改动2.题目保证链表中节点的值互不相同3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点2、算法分析链表结点的删除,主要是链表结点方向的改变。首先判断第一个结点的值是否等于val,等于的话直接返回链表的下一个结点。定义一个结点temp指向head结点,然后判断temp.ne.

2021-12-05 18:01:03 907

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除