算法
数据结构和算法分享
JarvanStack
保持简单
展开
-
[算法] leetcode golang 5. 最长回文子串多种解法
[算法] leetcode golang 5. 最长回文子串多种解法思路1: 暴力//思路1: 暴力O(n3)(超过5%)//遍历子字符串O(n2)//然后判断是否是回文O(n),记录最大的字字符串func longestPalindrome(s string) string { //参数处理 if len(s) < 2 { return s } //记录最大子字符串 maxStr := "" //遍历子字符串 fo原创 2022-04-22 13:44:12 · 288 阅读 · 0 评论 -
[算法] leetcode golang 4. 寻找两个正序数组的中位数 3种解法 暴力/第k个最小数字/二分
[算法] leetcode golang 4. 寻找两个正序数组的中位数 3种解法 暴力/第k个最小数字/二分思路1: 暴力(击败55%)//思路1: 将2个数组合并为一个新的数组然后取中位数//合并 O(n),O(n) 不符合要求//计算 O(1)func findMedianSortedArrays(nums1 []int, nums2 []int) float64 { //合并 nums3 := make([]int, len(nums1)+len(nums2)) p1, p2,原创 2022-04-10 15:05:16 · 898 阅读 · 0 评论 -
[算法] leetcode golang 3. 无重复字符的最长子串 2 种解法
[算法] leetcode golang 3. 无重复字符的最长子串 2 种解法思路1: 遍历+hash表 复杂度O(n2)固定一个数字,遍历后面的数字,用 hash表判断这个区间是否有重复的元素// 思路1: 遍历+hash表 复杂度O(n2)//固定一个数字,遍历后面的数字,使用hash表判断是否存在重复的数字func lengthOfLongestSubstring(s string) int { //参数判断 if len(s) < 2 { retur原创 2022-04-10 13:50:48 · 555 阅读 · 0 评论 -
[算法] 剑指offer2 golang 面试题13:二维子矩阵的数字之和
[算法] 剑指offer2 golang 面试题13:二维子矩阵的数字之和题目1:思路1: 暴力模拟暴力模拟代码type NumMatrix struct { Matrix [][]int}func Constructor(matrix [][]int) NumMatrix { return NumMatrix{Matrix: matrix}}//start: 17:05//二维子矩阵的元素和//思路: 遍历子矩阵的每一行累加值即可func (this *NumM原创 2022-03-21 18:21:59 · 398 阅读 · 0 评论 -
[算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等
[算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等题目1:思路1://思路: //1.记录总数 sum//2.遍历元素计算 sum - nums[i] - leftSum == leftSum ,return i 代码func pivotIndex(nums []int) int { //start: 13.16 end: 13.22 //思路: //1.记录总数 sum //2.遍历元素计算 sum - nums[i] - le原创 2022-03-21 13:25:02 · 1040 阅读 · 0 评论 -
[算法] 剑指offer2 golang 0和1个数相同的子数组
[算法] 剑指offer2 golang 0和1个数相同的子数组题目1:思路1: 暴力//思路1: 暴力//将0当作-1看待,//固定一个,计算后面的位数是否总和位0,计算最大的个数,//O(n3),优化下计算时间复杂度O(n2)代码1func findMaxLength(nums []int) int { //返回最长的子数组的长度 //start :19.11 //思路1: 暴力 //将0当作-1看待, //固定一个,计算后面的位数是否总和位0,原创 2022-03-20 19:57:50 · 232 阅读 · 0 评论 -
[算法] 剑指offer2 golang 面试题10:和为k的子数组
[算法] 剑指offer2 golang 面试题10:和为k的子数组题目1:思路1: 暴力时间复杂度 O(n2)代码func subarraySum(nums []int, k int) int { //start: 13:51, 13:57 //思路1: 暴力,因为元素中有可能是负数 //固定一个数字i,记录后面存在的可能性 //参数校验 if len(nums) == 0 { return 0 } //暴力原创 2022-03-20 19:06:33 · 835 阅读 · 0 评论 -
[算法] 剑指offer2 golang 面试题9:乘积小于k的子数组
[算法] 剑指offer2 golang 面试题9:乘积小于k的子数组题目1:思路1: 滑动窗口代码func numSubarrayProductLessThanK(nums []int, k int) int { //start: 10:28,... end 11.23 //思路1: 滑动窗口 //参数处理 if len(nums) == 0 || k <= 0 { return 0 } //滑动窗口 res :=原创 2022-03-20 11:26:00 · 1136 阅读 · 0 评论 -
[算法] 剑指offer2 golang 面试题7:数组中和为0的3个数字
[算法] 剑指offer2 golang 面试题7:数组中和为0的3个数字题目1:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a ,b ,c ,使得 a + b + c = 0 ?请找出所有和为 0 且 不重复 的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.原创 2022-03-19 21:24:00 · 351 阅读 · 0 评论 -
[算法] 剑指offer2 golang 面试题4:只出现一次的数字
[算法] 剑指offer2 golang 面试题4:只出现一次的数字题目1:给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,100]输出:100提示:1 <= nums.length <= 3 * 104-231 <= nums[i] <= 231 - 1nums 中,除某原创 2022-03-19 19:52:48 · 204 阅读 · 0 评论 -
[算法] 剑指offer2 golang 面试题3:前n个数字二进制形式中1的个数
[算法] 剑指offer2 golang 面试题3:前n个数字二进制形式中1的个数题目1:给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。示例 1:输入: n = 2输出: [0,1,1]解释:0 --> 01 --> 12 --> 10示例 2:输入: n = 5输出: [0,1,1,2,1,2]解释:0 --> 01 --> 12 --> 103 --> 114 -->原创 2022-03-19 17:11:16 · 163 阅读 · 0 评论 -
[算法] 剑指offer2 golang 面试题1:整数除法
[算法] 剑指offer2 golang 面试题1:整数除法题目1:给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1示例 1:输入:原创 2022-03-19 15:42:30 · 787 阅读 · 0 评论 -
linux 下载安装 go1.18 尝鲜
linux 下载安装 go1.18(1)下载curl -o go1.18.linux-amd64.tar.gz https://dl.google.com/go/go1.18.linux-amd64.tar.gz(2)新的go版本的文件夹(这里可以替换为你想要的目录)mkdir ~/go1.18(3)解压文件到新版本文件夹(这里可以替换为你想要的目录)tar zxvf go1.18.linux-amd64.tar.gz -C ~/go1.18(4)修改环境变量为新版本vim /e原创 2022-03-16 10:42:28 · 2551 阅读 · 0 评论 -
[算法] leetcode golang 1. 两数之和
[算法] leetcode golang 1. 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:原创 2022-03-13 20:44:04 · 157 阅读 · 0 评论 -
[算法] 剑指offer golang 面试题43:n个骰子的点数
[算法] 剑指offer golang 面试题43:n个骰子的点数题目1:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。 示例 1:输入: 1输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]示例 2:输入: 2输出: [0.02778,0.05556,0.0原创 2022-03-13 18:04:14 · 541 阅读 · 0 评论 -
[算法] 剑指offer golang 面试题41:和为s的两个数字VS和为s的连续正数序列
[算法] 剑指offer golang 面试题41:和为s的两个数字VS和为s的连续正数序列题目1:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。 示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]思路1:原创 2022-03-13 15:28:45 · 163 阅读 · 0 评论 -
[算法] 剑指offer golang 面试题40:数组中只出现一次的数字
[算法] 剑指offer golang 面试题40:数组中只出现一次的数字题目1: 其他元素会出现2次给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路1: 亦或异或是相同的位为0, 不同的位为1所以相同的元素最后将会抵消, 最后亦或的值就是返回值.代原创 2022-03-13 14:30:09 · 1398 阅读 · 0 评论 -
[算法] 剑指offer golang 39 二叉树的深度
[算法] 剑指offer golang 39 二叉树的深度题目题目一:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。二叉树的节点定义如下type BTree struct { value int left *BTree right *BTree}解法1: 二分查询思路二叉树的深度递归,当前深度等于左右子树最大深度 -1代码func maxDepth(root *TreeNode) int {原创 2022-03-13 13:47:42 · 921 阅读 · 0 评论 -
[算法] 剑指offer 36 数组中的逆序对 golang
[算法] 剑指offer 35 数组中的逆序对 golang题目题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如在数组{7,5,6,4} 中,一共存在5个逆序对,分别是(7,6)、(7,5)、(7,4)、(6,4)和(5,4)。2 个逆序特例子* 顺序数组 {1,2,3,4,5}: 逆序对个数为0 * 逆序数组 {5,4,3,2,1}: 逆序对个数为最大 4+3+2+1 = 10解法1: 暴力解法思原创 2022-03-10 10:32:07 · 409 阅读 · 0 评论 -
[算法] 剑指offer 35 第一个只出现一次的字符 golang
[算法] 剑指offer 35 第一个只出现一次的字符 golang题目在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例 1:输入:s = “abaccdeff”输出:‘b’示例 2:输入:s = “”输出:’ ’解法1: 哈希表思路我们将题目分为 2 步求每个字符的次数, 我们用 hashmap[byte]int 储存次数求第一个出现的次数, 遍历输入, 如果次数为1就返回代码//todo: 输入的应该是英文字母, 其他支原创 2022-03-09 11:47:07 · 383 阅读 · 0 评论 -
[算法] 剑指offer 34 丑数 golang
[算法] 剑指offer 34 丑数 golang题目我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明: 1 是丑数。n 不超过1690。解法1: 小顶堆/优先队列思路维护一个最小堆, 和一个 set集合每次从最小堆中取出最小的堆顶 hMin, 依次乘以2, 3 ,5原创 2022-03-09 11:09:44 · 206 阅读 · 0 评论 -
[算法] 剑指offer 33 把数组排成最小的数 golang
[算法] 剑指offer 33 把数组排成最小的数 golang题目题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3, 32, 321},则打印出这3个数字能排成的最小数字321323。解法1: 自定义 Less() 函数(调用排序接口)排序数组思路自定义 Less() 函数(调用排序接口)排序数组比较函数 Less() 如下将 i, j 变为字符串用字符串的方式拼接 si = i +j, sj =j +i 得到2个不同原创 2022-03-08 20:16:04 · 175 阅读 · 0 评论 -
[算法] 剑指offer 32 1到整数n中1出现的次数 golang
[算法] 剑指offer 32 1到整数n中1出现的次数 golang题目题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。解法1: 动态规划思路每一个数量级的数字中1的个数是确定的比如数量级为1: count=1数量级为2: count=10+1*9=19数量级为3: count=100+19*9=271…下一个数量级的count可以有上一个数量级决定, n=333时1的个原创 2022-03-08 19:06:48 · 176 阅读 · 0 评论 -
[算法] 剑指offer 30 最小的k个数 golang
[算法] 剑指offer 30 最小的k个数 golang题目题目:输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。解法1: 数组思路使用一个递增的链表记录最小的k个数字遍历数组如果链表长度小于4, 直接将元素添加到链表如果链表长度大于等于4并且元素小于链表元素的最大值, 就将元素插入链表中代码//最小的k个数字func minK(arr []int, k int) (resp []int) { //参数原创 2022-03-08 09:17:04 · 204 阅读 · 0 评论 -
[算法] 剑指offer 29. 数组中出现次数超过一半的数字 golang
[算法] 剑指offer 29. 数组中出现次数超过一半的数字 golang题目题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。解法1: 贪心算法思路数组中有一个数字出现的次数超过数组长度的一半,也就是说它出现的次数比其他所有数字出现次数的和还要多。因此我们可以考虑在遍历数组的时候保存两个值:一个是数组中的一个数字,一个是次数。遍历数组如果当原创 2022-03-07 21:27:28 · 514 阅读 · 0 评论 -
[算法] leetcode 53.最大子数组和 golang
[算法] leetcode 53.最大子数组和 golang题目给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。 示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23 提示:原创 2022-03-06 20:59:41 · 172 阅读 · 0 评论 -
[算法]剑指offer p26二叉搜索树转双向链表 golang
[算法]剑指offer p26二叉搜索树转双向链表 golang题目题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。比如输入下图中左边的二叉搜索树,则输出转换之后的排序双向链表。二叉树结点的定义如下:type BTree struct { value int left *BTree right *BTree}//二叉树转双向链表func Convert(root *BTree) (head *BTree) {原创 2022-03-03 20:34:39 · 489 阅读 · 0 评论 -
[算法]剑指offer p27复杂链表的复制 golang
[算法]剑指offer p27二叉搜索树转双向链表 golang题目题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。比如输入下图中左边的二叉搜索树,则输出转换之后的排序双向链表。二叉树结点的定义如下:type BTree struct { value int left *BTree right *BTree}//二叉树转双向链表func Convert(root *BTree) (head *BTree) {原创 2022-03-03 12:39:12 · 120 阅读 · 0 评论 -
[算法] 计数排序/桶排序/基数排序 golang 详解
计数排序/桶排序/基数排序 golang 详解都是使用桶 bucket (额外的空间)将有限范围(比如100) arr 映射到一个数组里面然后遍历 bucket 拿到数据依次摆放下面是计数排序的动图桶排序和奇数排序都可以一个位置储存多个范围的value计数排序//计数排序func CountingSort2(arr []int) { //参数处理 if len(arr) == 0 { fmt.Printf("%s\n", "err: len(arr) == 0") retur原创 2022-02-19 10:41:47 · 681 阅读 · 0 评论 -
[算法]堆排序详解
堆排序详解简介堆排序是基于 “堆” 数据结构的排序时间复杂度是 O(nlogn)“堆” 数据结构堆是一种特殊的完全二叉树, 有大顶堆和小顶堆 2 种大顶堆: 根节点大于等于左右孩子的值小顶堆: 根节点小于等于左右孩子的值堆结构等于层序遍历二叉树的输出我们用一个简单的公式来定义大顶堆和小顶堆大顶堆: arr[i] >= arr[2i+1] && arr[i] >= arr[2i+2]小顶堆: arr[i] <= arr[2i+1] &&原创 2022-02-18 21:18:28 · 238 阅读 · 0 评论 -
[算法] 二叉树的前中后层序遍历(递归、非递归Golang实现)
[算法] 二叉树的前中后层序遍历(递归、非递归Golang实现)简介种类基于递归的前序, 中序, 后续 遍历(3种)基于栈的前序, 中序, 后续遍历(3种)基于队列的层序遍历(3种)前序遍历的结果是 {8,6,5,7,10,9,11}中序遍历的结果是 {5,6,7,8,9,10,11} (搜索二叉树中序遍历的结果将会是有序的)后续遍历的结果是 {5,7,6,9,11,10,8}层序遍历的结果是 {8,6,10,5,7,9,11}递归的前序/中序/后续 遍历树节点的定义如下t原创 2022-02-17 11:45:45 · 792 阅读 · 0 评论 -
[算法]剑指offer p24二叉搜索树的后序遍历序列 golang
[算法]剑指offer p24二叉搜索树的后序遍历序列 golang题目题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。解法1思路我们先输出一个二叉搜索树的序列序列是{5,7,6,9,11,10,8}后续遍历总是先输出 left 再输出 right 再输出本节点所以最后一个节点 8 一定是根节点左边的是左子树右边的是右子树同理, 使用 递归 6 和 10 分别是左子树和右原创 2022-02-15 16:46:50 · 403 阅读 · 0 评论 -
[算法]剑指offer p23二叉树层级遍历 golang
[算法]剑指offer p23二叉树层级遍历 golang题目题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入图中的二叉树,则依次打印出 8 6 10 5 7 9 11节点定义type BTree struct { value int left *BTree right *BTree}解法1思路是: 使用队列维护节点package mainimport ( "fmt" "testing" "github.com/d原创 2022-02-15 14:54:15 · 235 阅读 · 0 评论 -
[算法]剑指offer p22栈的压入、弹出序列 golang
[算法]剑指offer p22栈的压入、弹出序列 golang题目题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5 是某栈的压栈序列,序列4、5、3、2、1 是该压栈序列对应的一个弹出序列,但 4、3、5、1、2 就不可能是该压栈序列的弹出序列。解法1首先的思路是建立一个辅助栈, 因为元素是不重复的, 所以可以用辅助栈来模式栈的压入和弹出注意这里 Push() 和 Pop() 是可以分开进行的不是原创 2022-02-15 14:29:32 · 193 阅读 · 0 评论 -
[算法]剑指offer p20顺时针打印矩阵 golang
[算法]剑指offer p20顺时针打印矩阵 golang题目题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵输出的顺序为{1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 15}解法1对于复杂代码的设计, 一般都要再编写之前讲清楚思路和设计看起来这个题目没有涉及到任何的数据结构, 但是各种边界情况却比较复杂,我们要再编写之前将将思路讲清楚, 通过示例找到规律一圈一圈打印我们可以用一个循原创 2022-02-14 21:01:51 · 297 阅读 · 0 评论 -
[算法]剑指offer p19二叉树的镜像 golang
[算法]剑指offer p19二叉树的镜像 golang题目题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。二叉树结点的定义如下:type BTree struct { value int left *BTree right *BTree}例如下面 B树 就是 A树 的镜像解法1画图题, 我们需要通过示例图像判断规律镜像的左子树和右子树都交换了位置我们的做法就是遍历树节点, 交换左子树和右子树的位置代码type BTree struct原创 2022-02-14 14:41:52 · 217 阅读 · 0 评论 -
[算法]剑指offer p17合并两个排序的链表 golang
[算法]剑指offer p18树的子结构 golang题目题目:输入两棵二叉树A和B,判断B是不是A的子结构。二叉树结点的定义如下:type BTree struct { value int left *BTree right *BTree}例如下面 B树 就是 A树 的子树解法1递归遍历A树找到和B树根节点相等的节点, 再递归遍历B树和A树比较package mainimport ( "fmt" "testing")type BTr原创 2022-02-14 11:42:03 · 130 阅读 · 0 评论 -
[算法]剑指offer p16 反转链表 golang
[算法]剑指offer p16 反转链表 golang题目题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表结点定义如下:type LinkNode struct { value int next *LinkNode}解法1: stack问下面试官是否可以有分配的空间, 如果有的话我们可以用栈来实现十分简单遍历链表并 Push 栈Pop栈重构链表代码// 5, 6//使用 stack 反转链表func revLink1(head *Link原创 2022-02-13 23:15:36 · 221 阅读 · 0 评论 -
[算法]剑指offer p15链表中倒数第k个结点 golang
[算法]剑指offer p15链表中倒数第k个结点 golang题目题目:输入一个链表,输出该链表中倒数第 k 个结点。为了符合大多数人的习惯,本题从1 开始计数,即链表的尾结点是倒数第1 个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点。链表结点定义如下:type LinkNode struct { value int next *LinkNode}解法1思路用双指针指针 left 和 right 比如求 {原创 2022-02-13 11:48:37 · 278 阅读 · 0 评论 -
[算法]剑指offer p13在O(1)时间删除链表结点 golang
[算法]剑指offer p13在O(1)时间删除链表结点 golang题目题目:给定单向链表的头指针和一个结点指针,定义一个函数在 O(1)时间删除该结点。链表结点与函数的定义如下:type LinkNode struct { value int next *LinkNode}//O(1) 删除节点func DeleteNode(head *LinkNode, node *LinkNode) { }解法1思路用下一个节点的 value 和 next 覆盖当前节点就等于将当前原创 2022-02-12 20:38:31 · 226 阅读 · 0 评论