剑指Offer
C-Liueasymoney
这个作者很懒,什么都没留下…
展开
-
【剑指offer刷题笔记】04.二维数组中的查找
题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:[[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]]给定 target = 5,返回 true。给定 target = 20,返.原创 2021-06-10 14:01:47 · 61 阅读 · 0 评论 -
【剑指offer刷题笔记】3.数组中重复的数字
题目:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3先排序在寻找,时间复杂度O(NlogN)太大利用哈希表保存已经出现过的元素,时间复杂度O(N),空间复杂度O(N),看看能不能把空间复杂度降下来根据题目中数组长度为n,其中的元素都是0~n-1,.原创 2021-06-10 13:37:20 · 59 阅读 · 0 评论 -
【剑指offer刷题笔记】68-2.二叉树的最近公共祖先
剑指No.68-2_二叉树的最近公共祖先题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5 和节点 1 的最近公共祖先是节点 3。本题与上一题的区别就原创 2021-06-04 15:46:02 · 59 阅读 · 0 评论 -
【剑指offer刷题笔记】68_1.二叉搜索树的最近公共祖先
剑指No.68_1_二叉搜索树的最近公共祖先题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8输出: 6解释: 节点 2 和节点 8 的最近公共祖先是 6。MySoluti原创 2021-06-03 17:09:36 · 146 阅读 · 0 评论 -
【剑指offer刷题笔记】66.构建乘积数组
剑指No.66_构建乘积数组题目:给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。示例:输入: [1,2,3,4,5]输出: [120,60,40,30,24]动态规划+双辅助数组可以根据a[i]将数组分为前后两段,那么b[i]则是这两段数组的共同乘积这两段数组乘积的1、状态定义为:dpC[原创 2021-06-03 11:05:35 · 69 阅读 · 0 评论 -
【剑指offer刷题笔记】65.不用加减乘除做加法
剑指No.65_不用加减乘除做加法题目:写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。示例:输入: a = 1, b = 1输出: 2利用位运算代替加法可以发现位运算中异或(^)相当于没有进位的加法,而与运算(&)再向左移动一位相当于进位 public int addWay(int a, int b){ // 循环是为了c与a进行相加(也就是异或)之后仍需要进位 while (b !=原创 2021-06-03 09:45:10 · 44 阅读 · 0 评论 -
【剑指offer刷题笔记】64.求1+2+...+n
剑指No.64_求1+2+…+n题目:求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例:输入: n = 3输出: 6使用短路技巧实现没有if判断的递归逻辑运算符具有短路效应if(A && B) // 若 A 为 false ,则 B 的判断不会执行(即短路),直接判定 A && B 为 falseif(A || B) // 若 A 为 true ,则 B 的判原创 2021-06-02 14:12:37 · 67 阅读 · 0 评论 -
【剑指offer刷题笔记】63.股票的最大利润
剑指No.63_股票的最大利润题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。本题有动态规划的思想,写完看到题解才意识到1、状态定义:有动态规划表dp[i]表示数组中到i的字数组中最大的利润,也就原创 2021-06-02 09:33:01 · 68 阅读 · 0 评论 -
【剑指offer刷题笔记】60.n个骰子的点数
剑指No.60_n个骰子的点数题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。示例:输入: 2输出: [0.02778,0.05556,0.08333,0.11111,0.13889,0.16667,0.13889,0.11111,0.08333,0.05556,0.02778]动态规划 public double原创 2021-06-02 09:00:53 · 65 阅读 · 0 评论 -
【剑指offer刷题笔记】61.扑克牌中的顺子
剑指No.61_扑克牌中的顺子题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例:输入: [1,2,3,4,5]输出: True排序+遍历 public boolean isStraightWay(int[] nums){ Arrays.sort(nums); int zero = 0; f原创 2021-06-01 14:07:32 · 64 阅读 · 0 评论 -
【剑指offer刷题笔记】59-2.队列的最大值
剑指No.59-2_队列的最大值题目:请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例:输入:[“MaxQueue”,“push_back”,“push_back”,“max_value”,“pop_front”,“max_value”][[],[1],[2],[],[],[]]输出: [null,原创 2021-05-31 23:10:35 · 68 阅读 · 0 评论 -
【剑指offer刷题笔记】59-1.滑动窗口的最大值
剑指No.59-1_滑动窗口的最大值题目:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 31 3 [-1 -3 5] 3 6 7原创 2021-05-31 17:11:13 · 75 阅读 · 0 评论 -
【剑指offer刷题笔记】58-1.翻转单词顺序
剑指No.58-1_翻转单词顺序题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。调用Java库函数 public String reverseWordsWay(S原创 2021-05-31 10:56:10 · 69 阅读 · 0 评论 -
【剑指offer刷题笔记】57-2.和为s的连续正数序列
剑指No.57-2_和为s的连续正数序列题目:输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例:输入:target = 9输出:[[2,3,4],[4,5]]双指针的滑动窗口 public int[][] findContinuousSequenceWay(int target){ List<int[]> result = new Arra原创 2021-05-30 23:55:19 · 81 阅读 · 0 评论 -
【剑指offer刷题笔记】57.和为s的两个数字
剑指No.57_和为s的两个数字题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。二分查找+双指针有一个关键条件就是递增排序的数组,所以马上想到了二分查找,当然本题用与不用二分查找没有太大差别,但希望培养一下这类思维。 public int[] towSumWay(int[原创 2021-05-30 21:01:05 · 79 阅读 · 0 评论 -
【剑指offer刷题笔记】56-2.数组中数字出现的次数2
剑指No.56-2_数组中数字出现的次数2题目:在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例:输入:nums = [3,4,3,3]输出:4/** * @Description: * 在nums数组中有出现三次的元素和出现一个一次的元素,那么重复出现的元素转化为二进制每一位相加结果都是3 * 那么把整个数组按照此方法相加,不为3也不为0的位置就是单独出现的元素二进制为1的位置 * 让数组每一位对3求余,所得结果就是单独元素1原创 2021-05-30 14:12:28 · 67 阅读 · 0 评论 -
【剑指offer刷题笔记】56-1.数组中数字出现的次数
剑指No.56-1_数组中数字出现的次数题目:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]本题主要学习思路包括异或、位数左右移相与/** * @Description: * 使用异或的思想,一个数组中如果其他元素都出现两次,只有一个出现一次,把这个数组依次异或,得到的就是出现一次的元素 * 所以要把包含原创 2021-05-30 11:16:53 · 61 阅读 · 0 评论 -
【剑指offer刷题笔记】55-2.平衡二叉树
剑指No.55-2_平衡二叉树题目: 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例:3/ \9 20/ \15 7 返回ture后序遍历+剪枝public class MySolution { public boolean isBalancedWay(TreeNode root) { return recur(root) != -1; }原创 2021-05-30 10:14:30 · 49 阅读 · 0 评论 -
【剑指offer刷题笔记】55-1.二叉树的深度
剑指No.55-1_二叉树的深度题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。示例:例如:给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回它的最大深度 3 。使用DFS方法public class MySolution { int res = 0; public int maxDepthWay(TreeNode roo原创 2021-05-29 11:16:34 · 44 阅读 · 0 评论 -
【剑指offer刷题笔记】54.二叉搜索树的第k大节点
剑指No.54_二叉搜索树的第k大节点题目:给定一棵二叉搜索树,请找出其中第k大的节点。示例: 输入: root = [3,1,4,null,2], k = 13/ \1 4\2输出: 4需要记住这样一个结论:使用中序遍历对二叉搜索树进行遍历得到的数组是按照从小到大进行排序的。 public int kthLargestWay(TreeNode root, int k) { if (root == null) return 0原创 2021-05-29 10:44:23 · 47 阅读 · 0 评论 -
【剑指offer刷题笔记】53-2.0~n-1中缺失的数字
剑指No.53-2_n-1中缺失的数字题目:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例:输入: [0,1,2,3,4,5,6,7,9]输出: 8排序数组中的搜索问题,要首先考虑二分查找。本题与53-1是同一个思路【剑指offer刷题笔记】53-1.在排序数组中查找元素利用二分查找 public int missingNumberWay(int[] nu原创 2021-05-29 09:53:35 · 64 阅读 · 0 评论 -
【剑指offer刷题笔记】53-1.在排序数组中查找元素
剑指No.53-1_在排序数组中查找元素题目:统计一个数字在排序数组中出现的次数。示例:输入: nums = [5,7,7,8,8,10], target = 8输出: 2暴力法 public int searchWay(int[] nums, int target){ int result = 0; if (nums.length == 0) return result; for (int i = 0; i原创 2021-05-29 09:25:34 · 53 阅读 · 0 评论 -
【剑指offer刷题笔记】52.两个链表的公共节点
剑指No.52_两个链表的公共节点题目:输入两个链表,找出它们的第一个公共节点。示例: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,原创 2021-05-29 08:51:27 · 57 阅读 · 0 评论 -
【剑指offer刷题笔记】51.数组中的逆序对
剑指No.51_数组中的逆序对题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例:输入: [7,5,6,4]输出: 5基于归并排序实现的解法本文所实现的解法基于我之前写的关于归并排序中的代码归并排序,在聚合函数部分做了一些改动。详细的解释可以看剑指offer。public class MySolution {// 辅助数组 private int[] aux;// 返回结果原创 2021-05-28 17:26:10 · 94 阅读 · 0 评论 -
【剑指offer刷题笔记】50.第一个只出现一次的字符
剑指No.50_第一个只出现一次的字符题目:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "采用有序哈希表储存java中的LinkedHashMap提供有序哈希表,在为数组元素去重的同时保证插入顺序 public char firstUniqCharWay(String s) { LinkedHashMap<Character, Inte原创 2021-05-27 20:40:04 · 77 阅读 · 0 评论 -
【剑指offer刷题笔记】49.丑数
剑指No.49_丑数题目:我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。最小堆方法利用最小堆来堆丑数数组进行排序,保证其有序性。由于每个丑数都是由其前面的丑数乘上2、3、5的因子得来,就可以得到这样的一个丑数数组。并且用一个set保证数组中不会出现重复的元素。 public int n原创 2021-05-27 14:53:11 · 42 阅读 · 0 评论 -
【剑指offer刷题笔记】48.最长不含重复字符的子字符串
剑指No.48_最长不含重复字符的子字符串题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。移动指针的做法(实际上双指针更佳) public int lengthOfLongestSubstringWay(String s){ if (s == null || s.equals("")) retu原创 2021-05-27 10:27:17 · 84 阅读 · 0 评论 -
【剑指offer刷题笔记】47.礼物的最大价值
剑指No.47_礼物的最大价值题目:在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物动态规划首先考虑递归的算法 int res = 0;原创 2021-05-26 14:26:12 · 84 阅读 · 0 评论 -
【剑指offer刷题笔记】46.把数字翻译成字符串
剑指No.46_把数字翻译成字符串题目:给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例: 输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”本题使用了动态规划的思想:把一个数字按照每一位划分为x1x2…xi…x原创 2021-05-26 10:11:03 · 60 阅读 · 0 评论 -
【剑指offer刷题笔记】45.把数组排成最小的数
剑指No.45_把数组排成最小的数题目:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例:输入: [3,30,34,5,9]输出: “3033459”根据排序规则:x+y>y+x => x>y和 x+y<y+x => x<y 使用快速排序方法进行排序之后拼接得出结果 public String minNumberWay(int[] nums){ String[] str原创 2021-05-25 16:24:20 · 119 阅读 · 0 评论 -
【剑指offer刷题笔记】42.连续子数组的最大和
剑指No.42_连续子数组的最大和题目:输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。分析数组规律主要思想就是,从头遍历一次数组,用subSum记录下遍历过的元素和,一旦subSum小于当前元素(即到当前元素为止之前一个字数组的和比当前元素还要小),那就说明之前的子数组和必然不原创 2021-05-22 10:59:55 · 64 阅读 · 0 评论 -
【剑指offer刷题笔记】40.最小的k个数
剑指No.40_最小的k个数题目:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]直接排序 public int[] getLeastNumbersWay(int[] nums, int k){ int partition = nums[k - 1]; return null;原创 2021-05-21 10:34:36 · 67 阅读 · 0 评论 -
【剑指offer刷题笔记】39.数组中出现次数超过一半的数字
剑指No.39_数组中出现次数超过一半的数字题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。可以假设数组是非空的,并且给定的数组总是存在多数元素。示例: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2哈希表统计法:用一个哈希表记录每个数字和其出现次数的映射,一旦发现出现次数大于数组长度一半的情况,就返回那个数字。(空间和时间复杂度都为O(n)) public int majorityElementWay(int[] nums){原创 2021-05-20 20:53:45 · 59 阅读 · 0 评论 -
【剑指offer刷题笔记】36.二叉搜索树与双向链表
剑指No.36_二叉搜索树与双向链表题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。主要思路就是利用中序遍历遍历搜索二叉树的特点(搜索的顺序是和二叉搜索树从小到大的顺序相同)来遍历每一个节点,同时改变节点的前驱和后继节点参照书中的代码写的,有些小问题: public Node treeToDoublyListWay(Node root){ Node last = null;原创 2021-04-30 22:53:18 · 88 阅读 · 1 评论 -
【剑指offer刷题笔记】35.复杂链表的复制
剑指No.35_复杂链表的复制题目:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]使用Map保存节点的方法 public Node copyRandomList原创 2021-04-28 22:16:53 · 67 阅读 · 0 评论 -
【剑指offer刷题笔记】34.二叉树中和为某一值的路径
剑指No.34_二叉树中和为某一值的路径题目:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和 target = 22,5/ \4 8/ / \11 13 4/ \ / \7 2 5 1返回:[[5,4,11,2],[5,8,4,5]]忘记考虑负数的情况了,难受其实没太理解清题目要求,题是要求一直到达叶节点的路径之和是否原创 2021-04-27 22:47:03 · 71 阅读 · 0 评论 -
【剑指offer刷题笔记】33.二叉搜索树的后序遍历序列
剑指No.33_二叉搜索树的后序遍历序列题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树:5/ \2 6/ \1 3示例:输入: [1,6,3,2,5]输出: false输入: [1,3,2,6,5]输出: true递归方法分治思想,后序遍历的序列格式为[左子节点|右子节点|根节点]二叉搜索树的左子节点比根节点小,右子节点比根节点原创 2021-04-26 20:42:57 · 80 阅读 · 0 评论 -
【剑指offer刷题笔记】32-3.从上到下打印二叉树3
剑指No.32-3_从上到下打印二叉树3题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。示例:例如:给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回其层次遍历结果:[[3],[20,9],[15,7]]在上一题的基础上加上一个判断即可 public List<List<Integer&原创 2021-04-24 11:28:31 · 53 阅读 · 0 评论 -
【剑指offer刷题笔记】32-2.从上到下打印二叉树2
剑指No.32-2_从上到下打印二叉树2题目:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。示例:例如:给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回其层次遍历结果:[[3],[9,20],[15,7]] public List<List<Integer>> levelOrder(TreeNode root){ List<List&原创 2021-04-23 17:43:36 · 78 阅读 · 0 评论 -
【剑指offer刷题笔记】32-1.从上到下打印二叉树
剑指No.32-1_从上到下打印二叉树题目:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。示例:例如:给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回:[3,9,20,15,7]BFS广度优先遍历: public int[] levelOrderWay(TreeNode root){ int[] res; if (root == null) return n原创 2021-04-23 11:57:22 · 53 阅读 · 0 评论