LeetCode
LeetCode—java实现
西西ANO
Ano's world
展开
-
LeetCode 04题 - 寻找两个正序数组的中位数
LeetCode 04题 -> 寻找两个正序数组的中位数1. 题目描述寻找两个正序数组的中位数给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log(m+n))。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [原创 2022-01-16 14:48:27 · 229 阅读 · 0 评论 -
数组-21-剑指Offer 57题 -> 和为s的连续正数序列
剑指Offer 57题 -> 和为s的连续正数序列1. 题目描述输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例输入:target = 9输出:[[2,3,4],[4,5]]输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]2. 解题思路滑动窗口+双指针①左右指针left、right表示[left,right]区间原创 2021-03-14 11:53:38 · 72 阅读 · 0 评论 -
数组-20-LeetCode 977题 -> 有序数组的平方
LeetCode 977题 -> 有序数组的平方1. 题目描述给一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]2. 解题思路思路1:先计算平方结果,再直接排序思路2:双指针3. 代码实现/** * 1.直接排序 * 先计算平方原创 2021-03-13 18:32:25 · 108 阅读 · 0 评论 -
数组-19-LeetCode 438题 -> 找到字符串中所有的字母异位词
LeetCode 438题 -> 找到字符串中所有字母异位词1. 题目描述给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。说明:字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例:输入: s: "cbaebabacd" p: "abc"输出: [0, 6]输入: s: "abab" p: "ab"输出: [0原创 2021-03-13 12:17:13 · 87 阅读 · 0 评论 -
数组-18-LeetCode 345题 ->反转字符串中的元音字母
LeetCode 345题 -> 反转字符串中的元音字母1. 题目描述编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例输入:"hello"输出:"holle"输入:"leetcode"输出:"leotcede"2. 解题思路双指针思路:左指针从左向右遍历,右指针从右想左遍历;当指针遍历到元音字母时,交换;当指针不是原因字母时,继续向前遍历。3. 代码实现public static String reverseVowels(String原创 2021-03-12 23:35:26 · 59 阅读 · 0 评论 -
数组-17-LeetCode 283题 -> 移动零
LeetCode 283题 -> 移动零1. 题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例输入: [0,1,0,3,12]输出: [1,3,12,0,0]2. 解题思路思路1:移动非零元素思路2:双指针思路3. 代码实现import java.util.Arrays;public class MoveZeroes { /** * 1.移动非零元素 * @param nums原创 2021-03-12 23:29:39 · 97 阅读 · 0 评论 -
数组-16-LeetCode 215题 -> 数组中的第K个最大元素
LeetCode 215题 -> 数组中的第K个最大元素1. 题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。来源于LeetCode示例输入: [3,2,1,5,6,4] 和 k = 2输出: 5输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 42. 解题思路思路1:暴力解法全局排序后直接找到第K个最大的元素思路2:借助快速排序思想局部排序判断基原创 2021-03-12 23:29:05 · 93 阅读 · 0 评论 -
数组-15-LeetCode 209题 -> 长度最小的子数组
LeetCode 209题 -> 长度最小的子数组1. 题目描述给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2 子数组 [4,3] 是该条件下的长度最小的子数组。2. 解题思路思路1:暴力解法思路2:双指针法(滑动窗口)定义滑动窗口的起始位置和结束位置为指针start、end,原创 2020-12-23 23:20:17 · 121 阅读 · 0 评论 -
数组-14-LeetCode169题-多数元素
LeetCode169题 -> 多数元素1. 题目描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。可以假设数组是非空的,并且给定的数组总是存在多数元素。示例输入: [3,2,3]输出: 3输入: [2,2,1,1,1,2,2]输出: 22. 解题思路思路1:HashMap法①利用HashMap来存储数组中每个元素及出现的次数,键表示nums[i],值表示nums[i]出现的次数;②遍历数组将数组中的原创 2020-12-20 13:04:40 · 80 阅读 · 0 评论 -
数组-13-LeetCode125题-验证回文串
LeetCode 125题 -> 验证回文串1. 题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。示例输入: "A man, a plan, a canal: Panama"输出: true输入: "race a car"输出: false2. 解题思路双指针,在原位置进行判断。3. 代码实现public class IsPalindrome { public static boolean isPalindro原创 2020-12-18 23:58:24 · 119 阅读 · 2 评论 -
数组-12-LeetCode88题->合并两个有序数组
LeetCode 88题 -> 合并两个有序数组1. 题目描述给两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3输原创 2020-12-15 23:23:22 · 70 阅读 · 0 评论 -
数组-11-LeetCode 80题 - 删除排序数组中的重复项Ⅱ
LeetCode 80题 -> 删除排序数组中的重复项Ⅱ1. 回顾LeetCode 28题:删除排序数组中的重复项题目描述:给定一个排序数组,需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。注意:不要使用额外的数组空间,必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例:nums = [1,1,2], 返回 2, 原数组 nums 的前两个元素被修改为 1, 2。 nums = [0,0,1,1,1,2,2,3,3,4],原创 2020-12-14 23:19:57 · 143 阅读 · 0 评论 -
数组-9-LeetCode 75题- 颜色分类
LeetCode 75题 -> 颜色分类1. 题目描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,使用整数 0、 1 和 2 分别表示红色、白色和蓝色。示例:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]2. 解题思路双指针①左右指针left、right分别指向下一个0、2的位置,left、right初始值分别是0,nums.length -原创 2020-12-11 00:46:46 · 222 阅读 · 0 评论 -
数组-10-LeetCode 76题-最小覆盖子串
LeetCode 76题 -> 最小覆盖子串1. 题目描述给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。示例:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"2. 解题思路滑动窗口①在字符串s中使用左右指针,初始化 left = 0,right = 0。[left, right)即为一个窗口;②right指针向右扩大窗口,即ri原创 2020-12-11 00:15:45 · 359 阅读 · 0 评论 -
数组-8-LeetCode 34题 -> 在排序数组中查找元素第一个位置和最后一个位置
LeetCode 34题 -> 在排序数组中查找元素第一个位置和最后一个位置1. 题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。示例 :输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]2. 解题思路二分法查找找第一个等于target的数的位置,即左边界;找第一个大于target的数的位置-1原创 2020-12-06 21:25:17 · 162 阅读 · 0 评论 -
数组-7-LeetCode 27题 -> 移除元素
LeetCode 27题 -> 移除元素1. 题目描述给定一个数组 nums 和一个值 val,需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。不需要考虑数组中超出新长度后面的元素。示例:nums = [3,2,2,3], val = 3,返回新的长度 2, 并且 nums 中的前两个元素均为 2。2. 解题思路拷贝覆盖!①遍历数组nums,两个指针原创 2020-12-06 21:24:14 · 85 阅读 · 0 评论 -
数组-6-LeetCode 26题-删除排序数组中的重复项
LeetCode 26题 -> 删除排序数组中的重复项1. 题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。注意:不要使用额外的数组空间,必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例:nums = [1,1,2], 返回 2, 原数组 nums 的前两个元素被修改为 1, 2。 nums = [0,0,1,1,1,2,2,3,3,4],返回 5, 原数组 nums 的前五个元素被修改为 0原创 2020-12-02 23:50:35 · 124 阅读 · 0 评论 -
LeetCode 01题 -两数之和
LeetCode 01题 -> 两数之和1. 题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:nums = [2, 7, 11, 15], target = 9nums[0] + nums[1] = 2 + 7 = 9返回 [0, 1]2. 解题思路思路1:暴力枚举法思路2:哈希映射法3. 代码实现impo原创 2020-12-02 23:49:30 · 66 阅读 · 0 评论 -
数组-5-LeetCode 18题 -> 四数之和
LeetCode 18题 -> 四数之和1. 题目描述给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。示例:nums = [1, 0, -1, 0, -2, 2],和 target = 0。 输出:[ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0,原创 2020-12-01 23:38:15 · 182 阅读 · 0 评论 -
数组-4-LeetCode 15题 ->最接近的三数之和
LeetCode 15题 -> 最接近的三数之和1. 题目描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2 (-1 + 2 + 1 = 2) 2. 解题思路排序+双指针:思路与15题类似。3. 代码实现import java.util.Arra原创 2020-11-30 23:32:07 · 98 阅读 · 0 评论 -
数组-3-LeetCode 15题 -> 三数之和
LeetCode 15题 -> 三数之和1. 题目描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4]满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]2. 解题思路排序+双指针:①如果数组为空或数组元素小于3,返回数组;②排序,③遍历原创 2020-11-30 22:53:14 · 279 阅读 · 0 评论 -
数组-2-LeetCode 11题 ->盛最多水的容器
LeetCode 11题 -> 盛最多水的容器1. 题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。来自LeetCode2. 解题思路双指针:一开始,双指针分别指向数组开始和结尾的两端边界,即left = 0; right = height.length - 1;盛最多水的容原创 2020-11-29 22:18:32 · 95 阅读 · 0 评论 -
数组-1-LeetCode 03题 -> 无重复字符的最长子串
LeetCode 03题 -> 无重复字符的最长子串1. 题目描述给定一个字符串,找出其中不含有重复字符的最长子串的长度。示例:s = "abcabcbb"返回 3s = "bbbbb"返回 1 s = "pwwkew"返回 3无重复字符的最长子串是 "wke"//注意: 是 子串 的长度,不是子序列。2. 解题思路滑动窗口法:①定义一个滑动窗口,窗口内无重复元素,所以需要定义一个HashSet集合;②滑动窗口的左右边界left、right,原创 2020-11-29 20:39:21 · 237 阅读 · 0 评论 -
剑指Offer-18-删除链表的节点
剑指Offer 18题删除链表的节点题目描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。来源于LeetCode示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为原创 2020-11-01 23:37:32 · 119 阅读 · 0 评论 -
剑指Offer-17-打印从1到最大的n位数-Java代码实现(两种思路)
剑指Offer 17题打印从1到最大的n位数题目描述输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。来源于LeetCode示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]代码实现(两种思路)import java.util.Arrays;public class Test17 { public static void main(String[] args) {原创 2020-10-29 23:21:56 · 126 阅读 · 0 评论 -
剑指Offer-16-数值的整数次方-递归方法Java代码实现
剑指Offer 16题数值的整数次方题目描述实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。来源于LeetCode示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25递原创 2020-10-27 23:05:12 · 89 阅读 · 0 评论 -
剑指Offer-15-二进制中1的个数-java实现(两种方法(无符号右移、二进制字符串))
剑指Offer 15 题二进制中1的个数题目描述请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。来源于LeetCode示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:0000000000000000000000原创 2020-10-22 23:27:48 · 121 阅读 · 0 评论 -
剑指Offer-14-Ⅱ-剪绳子Ⅱ-详解及代码实现(java)
剑指Offer 14-Ⅱ题剪绳子Ⅱ题目描述给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。来源于LeetCode示例 1:原创 2020-10-15 22:05:38 · 156 阅读 · 0 评论 -
剑指Offer-14-Ⅰ-剪绳子Ⅰ-详解及代码实现(java)
剑指Offer 14-Ⅰ题剪绳子Ⅰ题目描述给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。来源于LeetCode示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10输出:原创 2020-10-15 22:04:03 · 79 阅读 · 0 评论 -
剑指Offer-13-机器人的运动范围-详解及代码实现(java)
剑指Offer 13题机器人的运动范围题目描述地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?来源于LeetCode示例 1:输入:m原创 2020-10-12 17:51:03 · 156 阅读 · 0 评论 -
剑指Offer-12-矩阵中的路径 -回溯法详解及java代码实现
剑指Offer 12题矩阵中的路径题目描述(来源于LeetCode)请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包含原创 2020-10-08 12:02:12 · 138 阅读 · 0 评论 -
剑指Offer-11-旋转数组的最小数字(Java二分查找实现)
剑指Offer 11题旋转数组的最小数字题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 (来源:力扣LeetCode)示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0代码实现:import java.util.Arrays;public class原创 2020-09-27 23:32:52 · 111 阅读 · 0 评论 -
剑指Offer-10-Ⅱ-青蛙跳台阶问题(Java实现)
剑指Offer 10-Ⅱ题青蛙跳台阶问题题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。思路:类似斐波那契数列代码实现:public class Test10_2 { public static void main(String[] args) { System.out.println(jump(4原创 2020-09-25 21:35:12 · 73 阅读 · 0 评论 -
剑指Offer-09-用两个栈实现队列(java)
剑指Offer 09题用两个栈实现队列题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )代码实现(java)class CQueue { //先进先出 Deque<Integer> stack1; Deque<Integer> stack2; publ原创 2020-09-24 20:14:55 · 378 阅读 · 0 评论 -
剑指Offer-10-Ⅰ-斐波那契数列三种方法
剑指Offer 10-Ⅰ题斐波那契数列题目描述:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1原创 2020-09-19 20:56:31 · 112 阅读 · 0 评论 -
剑指Offer-05-替换空格-代码实现
剑指Offer 05题替换空格题目描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."代码实现:import java.util.Scanner;public class Test05 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);原创 2020-09-11 22:42:52 · 59 阅读 · 0 评论 -
剑指Offer-04-二维数组中的查找-详解+代码实现
剑指Offer 04题二维数组中的查找题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给原创 2020-09-09 22:51:23 · 97 阅读 · 0 评论 -
剑指Offer-03-数组中重复的数字-详解+代码实现
剑指Offer 03题找出数组中重复的数字题目描述:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思路一:临时数组申请一个临时数组,长度为num.length;遍历数组nums;如果nums[i]是几,就给临时数组第几个位置加1;判断临时数组的元素,如原创 2020-09-05 23:45:40 · 103 阅读 · 0 评论 -
剑指Offer-07- 重建二叉树-一种容易理解的递归思想
剑指Offer 07题重建二叉树题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例给出:前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7递归(容易理解的一种思路):public TreeNode buildTree(int[] pr原创 2020-09-18 22:29:20 · 102 阅读 · 0 评论 -
剑指Offer-06-从尾到头打印链表(使用栈)
剑指Offer 06题从尾到头打印链表题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]思路:使用栈,典型的先进后出。import java.util.Arrays;import java.util.Stack;class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}public c原创 2020-09-16 21:03:53 · 110 阅读 · 0 评论