牛客刷题-算法篇
通过在线编程题实战,逐步提高编程应用能力
妙团团
人生只有一次,就该全力以赴。
展开
-
BM58 字符串的排列
这一题其实类型与56题的全排列组合,需要排列的类型由数字数组变成了字符串。因为字符串也是可遍历的写法,与56题基本相同。2,声明dfs方法,这里还是使用了数组来缓存,当数组最大长度等于原始字符的时候,把缓存数组的值变成字符串,取出来,去重之后存到结果数组。要求:空间复杂度 O(n!),时间复杂度 O(n!输入一个字符串,长度不超过10,字符只包括大小写字母。1,需要声明3个变量,分别保存结果标记,和去重。数据范围:n < 10n原创 2022-10-21 22:47:22 · 268 阅读 · 0 评论 -
BM57 岛屿数量
题目给出的是一个二维数组,可以把其想象成一个平面图,把总数组里面的索引想象成y轴, 把子数组想象成x轴,那么每一个值都有一个坐标。我们要探索海洋中的岛屿,值为1的为陆地,值为0的为海洋,相邻的陆地为同一块岛屿,我们需要探索每一个点。当我们到达陆地之后,需要判断其上下左右是否还是陆地,如果是陆地,那么进入该陆地继续判断。同时标记已探索过的陆地,避免重复探索,当遇到的陆地是我们已经探索过的,就不探索该陆地,直接跳过。给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。原创 2022-10-21 10:54:43 · 386 阅读 · 0 评论 -
BM56 有重复项数字的全排列
这一题和第55题大同小异,第55题是无重复的全排列,这一题是原数据里有重复数字的全排列,故而这两题一起写。原创 2022-10-20 16:40:30 · 543 阅读 · 0 评论 -
BM54 三数之和
在找的过程中如果扫描的值之和取反后大于当前的值,那么需要将左指针向右移动,因为我们的数据是排序好的,越往右越大,反之越往左越小。第50题是两数之和,这一题是三数之和,那如果是五数之和,十数之和呢,总不能用五个指针十个指针,最好的方法应是,先找到有多少种组合,计算每种组合相加的结果得到我们想要的答案。先使用了哈希表的解法,根据第50题《两数之和》思路,使用哈希表先保存了所有值,同时将在数组中的位置也存了下来,利用不同索引位和三数之和等于零这个条件来判断,但是这样输出后的结果和答案的位置不一样,卡在了13题。原创 2022-10-09 21:10:53 · 429 阅读 · 0 评论 -
BM53 缺失的第一个正整数
这里一开始理解了好久,没看懂啥意思。就是在数组找没有出现的正整数。所以我们只需要统计整数就可以了。然后判定没有的最小正整数。自然数里最小正整数为1。二,从1开始判断Map中是否有该数,每次加一。通过map的has检查,如果没有循环中止。那么该值就是最小正整数。给定一个无重复元素的整数数组nums,请你找出其中没有出现的最小的正整数。进阶: 空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)原创 2022-10-06 23:25:31 · 206 阅读 · 0 评论 -
BM52 数组中只出现一次的两个数字
数据范围:数组长度 2\le n \le 10002≤n≤1000,数组中每个数的大小 0 < val \le 10000000原创 2022-10-06 23:00:55 · 172 阅读 · 0 评论 -
BM51 数组中出现次数超过一半的数字
这一题类似于 《统计字符串中出现最多的字符》,还是使用表来统计数组中每个数在数组红出现的次数。获取到出现次数最多的字符,判读该字符出现的次数是否大于数组长度的一半,如果是返回该字符。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。保存到表中后,获取到最大出现次数,但是,发现光获取最大出现次数还不够,同时还要获取到该字符。给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。原创 2022-10-06 22:49:33 · 138 阅读 · 0 评论 -
BM50 两数之和
为了提高性能,将遍历过的数值用一个表来保存当前值和索引。每次遍历的时候就根据,当前值与target的差值,去表中查找是否有该值,如果有就判断达成题意,然后取出保存的索引和当前索引,排序后返回。看上去是挺简单的,但是在实际计算中,数组中的任意两个数都需要加一遍,计算量其实非常大,复杂度不能太高。给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。要求:空间复杂度 O(n)O(n),时间复杂度 O(nlogn)O(nlogn)原创 2022-10-06 22:20:52 · 133 阅读 · 0 评论 -
BM49 表达式求值
感觉这一题是相对较难的,难点在于优先级运算。为了方便通过使用了api, 有时间可以慢慢研究。数据范围:0\le |s| \le 1000≤∣s∣≤100,保证计算结果始终在整型范围内。要求:空间复杂度: O(n)O(n),时间复杂度 O(n)O(n)原生的方法封装起来还是相对较难的,封装就是为了简化使用;请写一个整数计算器,支持加减乘三种运算和括号。原创 2022-10-06 21:39:55 · 132 阅读 · 0 评论 -
BM48 数据流中的中位数
分析: 根据题意获取数据流的中位数,由Insert()方法读取数据流,使用GetMedian()方法获取数据流的中位数,题目最后是同时导出这两个方法,也就是说这两个方法是每次都要执行的。数据范围:数据流中数个数满足 1 \le n \le 1000 \1≤n≤1000 ,大小满足 1 \le val \le 1000 \1≤val≤1000。3, 使用GetMedian()方法,读取中位数,如果数组长度是奇数,就直接取中位数。2,Insert()方法中,将每次传入的数存储到arr数组中,做好排序,原创 2022-10-05 21:00:36 · 104 阅读 · 0 评论 -
BM46 最小的K个数
给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。数据范围:0\le k,n \le 100000≤k,n≤10000,数组中每个数的大小0 \le val \le 10000≤val≤1000。2, 无须排序,直接找到最小值将其提取出来,并把该值重原数组中删除。要求:空间复杂度 O(n)O(n) ,时间复杂度 O(nlogk)O(nlogk);使用数组API简单暴力省事。原创 2022-10-05 11:28:13 · 86 阅读 · 0 评论 -
BM45 滑动窗口的最大值
例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5};针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2,6,[2,5,1]}。窗口大于数组长度或窗口长度为0的时候,返回空。原创 2022-10-05 10:59:06 · 170 阅读 · 0 评论 -
BM44 有效括号序列
描述给出一个仅包含字符’(‘,’)‘,’{‘,’}‘,’[‘和’]',的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。数据范围:字符串长度 0\le n \le 100000≤n≤10000要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n);思路: 给到的是一个字符串,判断是否按照正确的方式关闭。就是左边的要对应右边的 ( , [ ,{,}, ],),如果是相互包裹的里面也应该是闭合的原创 2022-06-08 22:46:33 · 137 阅读 · 0 评论 -
BM39 序列化二叉树
描述请实现两个函数,分别用来序列化和反序列化二叉树,不对序列化之后的字符串进行约束,但要求能够根据序列化之后的字符串重新构造出一棵与原二叉树相同的树。二叉树的序列化(Serialize)是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树等遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#)二叉树的反序列化(Deserialize)是指:根据某种遍历顺序得到的序列化字符串原创 2022-05-15 00:00:00 · 85 阅读 · 0 评论 -
BM36 判断是不是平衡二叉树
描述输入一棵节点数为 n 二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。样例解释:样例二叉树如图,为一颗平衡二叉树注:我们约定空树是平衡二叉树。数据范围:n \le 100n≤100,树上节点的val值满足 0 \le n \le 10000≤n≤1000要求:空间复杂度O(1)原创 2022-05-14 12:24:39 · 95 阅读 · 0 评论 -
BM35 判断是不是完全二叉树
描述给定一个二叉树,确定他是否是一个完全二叉树。完全二叉树的定义:若二叉树的深度为 h,除第 h 层外,其它各层的结点数都达到最大个数,第 h 层所有的叶子结点都连续集中在最左边,这就是完全二叉树。(第 h 层可能包含 [1~2h] 个节点)数据范围:节点数满足 1 \le n \le 100 \1≤n≤100样例图1:样例图2:样例图3:思路: 最好实现的方式就是层序遍历,每一层,每一层的找,根据完全二叉树的介绍,除叶子节点外,其他各层都达到了最大节点数,且叶子节点有一到两个节点,集中原创 2022-05-05 22:35:46 · 362 阅读 · 0 评论 -
BM34 判断是不是二叉搜索树
描述给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。二叉搜索树满足每个节点的左子树上的所有节点均小于当前节点且右子树上的所有节点均大于当前节点。例:图1图2数据范围:节点数量满足 1 \le n\le 10^4 \1≤n≤104,节点上的值满足 -2^{31} \le val \le 2^{31}-1\−231≤val≤231−1思路: 观察搜索二叉树的判断方式,和中序遍历的遍历顺序相同,那么在这个过程中是否就可以用val来做比较呢,是可以的。先保存前一个,和当前对比,如原创 2022-05-02 17:52:49 · 278 阅读 · 0 评论 -
BM33 二叉树的镜像
描述操作给定的二叉树,将其变换为源二叉树的镜像。数据范围:二叉树的节点数 0 \le n \le 10000≤n≤1000 , 二叉树每个节点的值 0\le val \le 10000≤val≤1000要求: 空间复杂度 O(n)O(n) 。本题也有原地操作,即空间复杂度 O(1)O(1) 的解法,时间复杂度 O(n)O(n)比如:源二叉树镜像二叉树思路: 交换子树的左右位置,就可以达到题目要求的效果function Mirror( pRoot ) { // write code原创 2022-05-02 17:01:10 · 507 阅读 · 0 评论 -
BM30 二叉搜索树与双向链表
描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。如下图所示数据范围:输入二叉树的节点数 0 \le n \le 10000≤n≤1000,二叉树中每个节点的值 0\le val \le 10000≤val≤1000要求:空间复杂度O(1)O(1)(即在原树上操作),时间复杂度 O(n)O(n)注意:1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继2.返回链表中的第一个节点的指针3.函数返回的T原创 2022-05-02 14:51:22 · 354 阅读 · 0 评论 -
BM29 二叉树中和为某一值的路径(一)
描述给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是指没有子节点的节点3.路径只能从父节点到子节点,不能从子节点到父节点4.总节点数目为n例如:给出如下的二叉树,\ sum=22 sum=22,返回true,因为存在一条路径 5\to 4\to 11\to 25→4→11→2的节点值之和为 22数据范围:1.树上的节点数满足 0 \le n \le 10原创 2022-05-02 13:53:13 · 94 阅读 · 0 评论 -
BM28 二叉树的最大深度
描述求给定二叉树的最大深度,深度是指树的根节点到任一叶子节点路径上节点的数量。最大深度是所有叶子节点的深度的最大值。(注:叶子节点是指没有子节点的节点。)数据范围:0 \le n \le 1000000≤n≤100000,树上每个节点的val满足 |val| \le 100∣val∣≤100要求: 时间复杂度 O(n)O(n)思路: 其实本题的答案在上一题就已经给出了,上一题我们通过层序遍历获得了每一层的节点,那么最大深度就是最大节点层数;代码:function maxDepth( roo原创 2022-05-02 12:23:58 · 531 阅读 · 0 评论 -
BM27 按之字形顺序打印二叉树
描述给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)数据范围:0 \le n \le 15000≤n≤1500,树上每个节点的val满足 |val| <= 1500∣val∣<=1500要求:空间复杂度:O(n)O(n),时间复杂度:O(n)O(n)例如:给定的二叉树是{1,2,3,#,#,4,5}该二叉树之字形层序遍历的结果是[[1],[3,2],[4,5]]思路:上一题做了程序遍历的取值,这题可以延申。根据要求,交替遍历原创 2022-04-28 22:29:40 · 564 阅读 · 0 评论 -
BM26 求二叉树的层序遍历
描述给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)例如:给定的二叉树是{3,9,20,#,#,15,7},该二叉树层序遍历的结果是[[3],[9,20],[15,7]]数据范围:二叉树的节点数满足 1 \le n \le 10^5 \1≤n≤105思路:前面写了,前序遍历,中序遍历,后序遍历,其实方法是一样的,只是在不同的位置将值取出去,题目要求的返回值是二维数组,我们要在每一层遍历的时候添加一个数组,因为操作的是同一个数组,最好返回就是一个二维数组;f原创 2022-04-28 22:04:13 · 692 阅读 · 0 评论 -
BM25 二叉树的后序遍历
描述给定一个二叉树,返回他的后序遍历的序列。后序遍历是值按照 左节点->右节点->根节点 的顺序的遍历。数据范围:二叉树的节点数量满足 0 \le n \le 100 \0≤n≤100 ,二叉树节点的值满足 1 \le val \le 100 \1≤val≤100 ,树的各节点的值各不相同样例图递归function postorderTraversal( root ) { // write code here const res = []; if(!ro原创 2022-04-17 20:05:52 · 394 阅读 · 0 评论 -
BM24 二叉树的中序遍历
描述给定一个二叉树的根节点root,返回它的中序遍历结果。数据范围:树上节点数满足 0 \le n \le 10000≤n≤1000,树上每个节点的值满足 0 \le val \le 10000≤val≤1000进阶:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)递归版function inorderTraversal( root ) { // write code here const res = []; if(!root) return res;原创 2022-04-17 19:55:49 · 368 阅读 · 0 评论 -
BM23 二叉树的前序遍历
描述给你二叉树的根节点 root ,返回它节点值的 前序 遍历。数据范围:二叉树的节点数量满足 1 \le n \le 100 \1≤n≤100 ,二叉树节点的值满足 1 \le val \le 100 \1≤val≤100 ,树的各节点的值各不相同递归版function preorderTraversal( root ) { // write code here const res = []; function cd(root){ if(root ==原创 2022-04-17 19:25:14 · 565 阅读 · 0 评论 -
BM22 比较版本号 js 数组转字符串
描述牛客项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等现在给你2个版本号version1和version2,请你比较他们的大小版本号是由修订号组成,修订号与修订号之间由一个"."连接。1个修订号可能有多位数字组成,修订号可能包含前导0,且是合法的。例如,1.02.11,0.1,0.2都是合法的版本号每个版本号至少包含1个修订号。修订号从左到右编号,下标从0开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。比较规则:一. 比较版本号时,请按从左到右的顺序依次比较它原创 2022-04-17 16:57:13 · 139 阅读 · 0 评论 -
BM21 旋转数组的最小数字 js【数组末尾查找】
描述有一个长度为 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)示例1输入:[3,4原创 2022-04-17 16:04:37 · 266 阅读 · 0 评论 -
BM19 寻找峰值
描述给定一个长度为n的数组nums,请你找到峰值并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个所在位置即可。1.峰值元素是指其值严格大于左右相邻值的元素。严格大于即不能有等于2.假设 nums[-1] = nums[n] = -\infty−∞3.对于所有有效的 i 都有 nums[i] != nums[i + 1]4.你可以使用O(logN)的时间复杂度实现此问题吗?数据范围:1 \le nums.length \le 2\times 10^5 \1≤nums.length原创 2022-04-11 22:42:26 · 302 阅读 · 0 评论 -
BM18 二维数组中的查找
描述在一个二维数组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 , 矩阵中的值满足 0原创 2022-04-11 22:22:44 · 64 阅读 · 0 评论 -
BM17 二分查找-I
描述请实现无重复数字的升序数组的二分查找给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1数据范围:0 \le len(nums) \le 2\times10^50≤len(nums)≤2×105, 数组中任意值满足 |val| \le 10^9∣val∣≤109进阶:时间复杂度 O(\log n)O(logn) ,空间复杂度 O(1)O(1)示例1输入原创 2022-04-10 22:34:52 · 84 阅读 · 0 评论 -
BM16 删除有序链表中重复的元素-II
描述给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。例如:给出的链表为1 \to 2\to 3\to 3\to 4\to 4\to51→2→3→3→4→4→5, 返回1\to 2\to51→2→5.给出的链表为1\to1 \to 1\to 2 \to 31→1→1→2→3, 返回2\to 32→3.数据范围:链表长度 0 \le n \le 100000≤n≤10000,链表中的值满足 |val| \le 1000∣val∣≤1000要求:空间复杂度 O(原创 2022-04-09 18:12:17 · 346 阅读 · 0 评论 -
BM14 链表的奇偶重排
描述给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出。注意是节点的编号而非节点的数值。数据范围:节点数量满足 0 \le n \le 10^50≤n≤105,节点中的值都满足 0 \le val \le 10000≤val≤1000要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)示例1输入:{1,2,3,4,5,6}返回值:{1,3,5,2,4,6}说明:1->2->3->4->5->6->N原创 2022-04-09 15:34:58 · 361 阅读 · 0 评论 -
BM13 判断一个链表是否为回文结构
描述给定一个链表,请判断该链表是否为回文结构。回文是指该字符串正序逆序完全一致。数据范围: 链表节点数链表节点数 0≤n≤10^5,链表中每个节点的值满足 |val| <= 10^7 ;示例输入:{1}返回值:true示例2输入:{2,1}返回值:false说明:2->1示例3输入:{1,2,2,1}返回值:true说明:1->2->2->1思路: 回文结构是指正反序完全一致的支付串,解决方法就是把链表中的值转成字符串,在做比较;原创 2022-04-09 12:02:12 · 213 阅读 · 0 评论 -
BM12 单链表的排序
描述给定一个节点数为n的无序单链表,对其按升序排序。数据范围:0 < n \le 1000000<n≤100000要求:时间复杂度 O(nlogn)O(nlogn)示例1输入:{1,3,2,4,5}返回值:{1,2,3,4,5}示例2输入:{-1,0,-2}返回值:{-2,-1,0};思路:这题还是简单,先取值保存到数组里然后直接使用数组的sort方法,在将排序好的值放回去即可;代码 function ListNode(x){ this.val = x;原创 2022-04-09 00:34:27 · 192 阅读 · 0 评论 -
BM11 链表相加(二)
描述假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。给定两个这种链表,请生成代表两个整数相加值的结果链表。数据范围:0 \le n,m \le 10000000≤n,m≤1000000,链表任意值 0 \le val \le 90≤val≤9要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)例如:链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0。示例1输入:[原创 2022-04-08 23:55:58 · 93 阅读 · 0 评论 -
BM10 两个链表的第一个公共结点
描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)数据范围: n \le 1000n≤1000要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)例如,输入{1,2,3},{4,5},{6,7}时,两个无环的单向链表的结构如下图所示:可以看到它们的第一个公共结点的结点值为6,所以返回结点值为6的结点。输入描述:输入分为是3段,第一段是第一个链表的非公共部分,第二原创 2022-04-05 17:46:41 · 120 阅读 · 0 评论 -
BM9 删除链表的倒数第n个节点
BM9 删除链表的倒数第n个节点题目题解(148)讨论(246)排行中等 通过率:38.16% 时间限制:1秒 空间限制:64M知识点链表双指针描述给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针例如,给出的链表为: 1\to 2\to 3\to 4\to 51→2→3→4→5, n= 2n=2.删除了链表的倒数第 nn 个节点之后,链表变为1\to 2\to 3\to 51→2→3→5.数据范围: 链表长度 0\le n \le 10000≤n≤1000,链表原创 2022-04-05 17:28:34 · 121 阅读 · 0 评论 -
BM8 链表中倒数最后k个结点
描述输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。数据范围:0 \leq n \leq 10^50≤n≤105,0 \leq a_i \leq 10^90≤ai≤109,0 \leq k \leq 10^90≤k≤109要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)进阶:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)例如输入{1,2,3,4,5},2时,对应原创 2022-04-04 23:41:26 · 72 阅读 · 0 评论 -
BM4 合并两个排序的链表
描述输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: 0 \le n \le 10000≤n≤1000,-1000 \le 节点值 \le 1000−1000≤节点值≤1000要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:或输入{-1,2,4},{1,3,4}时,合并后的链表为{-1,原创 2022-04-04 22:38:34 · 579 阅读 · 0 评论