java
_努力努力再努力_
如果你吃不了学习的苦,那就只能吃生活的苦
展开
-
(字节面试题)青蛙跳台变形(一次 k 阶台阶)
你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式,一个学姐在字节面试面到的题目,一次 可以 迈 k 阶台阶,普通的青蛙跳台是迈 1 或者 2,现在是 1 - k 都有可能,所以,依旧使用数组进行求解:范围在 i - k 之间的数都加上,动态转移方程:dp[n] = dp[n - 1] + dp[n - 2] + ..... + dp[n - k]解:import java.util.*;public class Main { public stat原创 2022-03-12 09:27:30 · 727 阅读 · 1 评论 -
279. 完全平方数
给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例 1:输入:n = 12输出:3解释:12 = 4 + 4 + 4示例 2:输入:n = 13输出:2解释:13 = 4 + 9来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/perfect-squares著作权归原创 2022-03-11 09:29:22 · 510 阅读 · 0 评论 -
22. 括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/generate-parentheses著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 括号生成,递归版本原创 2022-03-11 09:08:47 · 1834 阅读 · 0 评论 -
313. 超级丑数
超级丑数 是一个正整数,并满足其所有质因数都出现在质数数组 primes 中。给你一个整数 n 和一个整数数组 primes ,返回第 n 个 超级丑数 。题目数据保证第 n 个 超级丑数 在 32-bit 带符号整数范围内。示例 1:输入:n = 12, primes = [2,7,13,19]输出:32解释:给定长度为 4 的质数数组 primes = [2,7,13,19],前 12 个超级丑数序列为:[1,2,4,7,8,13,14,16,19,26,28,32] 。示例 2:输入:原创 2022-03-08 09:51:07 · 277 阅读 · 0 评论 -
47. 全排列 II
给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 1:输入:nums = [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示:1 <= nums.length <= 8-10 <= nums[i] <= 10通过次数271,561提交次数422,018来原创 2022-03-07 09:10:24 · 131 阅读 · 0 评论 -
【美团笔试】最大子段和
题目二题目描述最大子段和是一个经典问题,即对于一个数组找出其和最大的子数组。现在允许你在求解该问题之前翻转这个数组的连续一段(如翻转{1,2,3,4,5,6}的第三个到第五个元素组成的子数组得到的是{1,2,5,4,3,6}),则翻转后该数组的最大子段和最大能达到多少?输入描述第一行有一个正整数n(1<=n<=100000),代表数组长度。第二行有n个空格隔开的整数(-1000<=ai<=1000),代表给出数组。输出描述输出一个整数,代表若允许你翻转一个子数组 ,则原创 2022-03-06 14:20:47 · 819 阅读 · 0 评论 -
98. 验证二叉搜索树(两种方法)
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:root = [2,1,3]输出:true示例 2:输入:root = [5,1,4,null,null,3,6]输出:false解释:根节点的值是 5 ,但是右子节点的值是 4 。提示:树中节点数目范围在[1, 104] 内-231 <=原创 2022-03-06 09:08:28 · 1804 阅读 · 0 评论 -
647. 回文子串
给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:s = “abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:s = “aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”提示:1 <= s.l原创 2022-03-04 16:46:27 · 356 阅读 · 0 评论 -
5. 最长回文子串(两种方法)
给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”提示:1 <= s.length <= 1000s 仅由数字和英文字母组成来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring著作权归领扣网络所有。商业转载请联系官方授权,非原创 2022-03-04 16:17:33 · 3522 阅读 · 0 评论 -
46. 全排列(两种方法)
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]提示:1 <= nums.length <= 6-10 <= nums[i] <= 10nu原创 2022-03-04 12:41:19 · 342 阅读 · 0 评论 -
410. 分割数组的最大值
给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。示例 1:输入:nums = [7,2,5,10,8], m = 2输出:18解释:一共有四种方法将 nums 分割为 2 个子数组。其中最好的方式是将其分为 [7,2,5] 和 [10,8] 。因为此时这两个子数组各自的和的最大值为18,在所有情况中最小。示例 2:输入:nums = [1,2,3,4,5], m = 2输出:9示例 3原创 2022-03-03 16:42:32 · 150 阅读 · 0 评论 -
[编程题]万万没想。到之抓捕孔连顺
我叫王大锤,是一名特工。我刚刚接到任务:在字节跳动大街进行埋伏,抓捕恐怖分子孔连顺。和我一起行动的还有另外两名特工,我提议我们在字节跳动大街的N个建筑中选定3个埋伏地点。为了相互照应,我们决定相距最远的两名特工间的距离不超过D。我特喵是个天才! 经过精密的计算,我们从X种可行的埋伏方案中选择了一种。这个方案万无一失,颤抖吧,孔连顺!……万万没想到,计划还是失败了,孔连顺化妆成小龙女,混在cosplay的队伍中逃出了字节跳动大街。只怪他的伪装太成功了,就是杨过本人来了也发现不了的!请听原创 2022-03-03 09:43:11 · 181 阅读 · 0 评论 -
万万没.想到之聪明的编辑(AC)
我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:\1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello\2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello\3. 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBC原创 2022-03-03 09:14:51 · 199 阅读 · 0 评论 -
260. 只出现一次的数字 III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?示例 1:输入:nums = [1,2,1,3,2,5]输出:[3,5]解释:[5, 3] 也是有效的答案。示例 2:输入:nums = [-1,0]输出:[-1,0]示例 3:输入:nums = [0,1]输出:[1,0]提示:2 <= nums.length &原创 2022-03-01 09:35:52 · 122 阅读 · 0 评论 -
123. 买卖股票的最2佳时机 III
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入:prices = [3,3,5,0,0,3,1,4]输出:6解释:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 =原创 2022-02-22 10:12:09 · 122 阅读 · 0 评论 -
122. 买卖股票的最时机 II
给定一个数组 prices ,其中 prices[i] 表示股票第 i 天的价格。在每一天,你可能会决定购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以购买它,然后在 同一天 出售。返回 你能获得的 最大 利润 。示例 1:输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入原创 2022-02-22 09:10:47 · 106 阅读 · 0 评论 -
NC7 买卖股票的最好时机(一)
假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天2.如果不能获取到任何利润,请返回03.假设买入卖出均无手续费数据范围: 0 \le n \le 10^5 , 0 \le val \le 10^40≤n≤105,0≤val≤104要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(原创 2022-02-16 10:50:47 · 166 阅读 · 0 评论 -
NC2 重排链表
将给定的单链表\ L L: L_0→L_1→…→L_{n-1}→L_ nL0→L1→…→Ln−1→Ln重新排序为:L_0→L_n →L_1→L_{n-1}→L_2→L_{n-2}→…L0→Ln→L1→Ln−1→L2→Ln−2→…要求使用原地算法,不能只改变节点内部的值,需要对实际的节点进行交换。数据范围:链表长度 0 \le n \le 200000≤n≤20000 ,链表中每个节点的值满足 0 \le val \le 10原创 2022-02-16 10:18:19 · 502 阅读 · 0 评论 -
NC1 大数加法
描述以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。数据范围:len(s),len(t) \le 100000len(s),len(t)≤100000,字符串仅由’0’~‘9’构成要求:时间复杂度 O(n)O(n)示例1输入:“1”,“99”复制返回值:“100”复制说明:1+99=100示例2输入:“114514”,""复制返回值:“114514”大概是废了,大数加法已经不会写了,cao,本题使用 StringBuilder 类,每次添加记录原创 2022-02-15 11:39:10 · 150 阅读 · 0 评论 -
142. 环形链表 II
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为原创 2022-02-14 11:01:51 · 106 阅读 · 0 评论 -
41. 缺失的第一个正数
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]输出:1提示:1 <= nums.length <= 5 * 105-231 <= nums[i] <= 231 - 1来源:力扣(LeetCode)原创 2022-02-11 09:37:51 · 403 阅读 · 0 评论 -
41. 缺失的第一个正数
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]输出:1提示:1 <= nums.length <= 5 * 105-231 <= nums[i] <= 231 - 1通过次数186,674提交次数原创 2022-01-25 10:22:02 · 462 阅读 · 0 评论 -
21. 合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列来源:力扣(LeetCo原创 2022-01-24 11:15:57 · 89 阅读 · 0 评论 -
(复盘)剑指 Offer II 070. 排序数组中只出现一次的数字
给定一个只包含整数的有序数组 nums ,每个元素都会出现两次,唯有一个数只会出现一次,请找出这个唯一的数字。示例 1:输入: nums = [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: nums = [3,3,7,7,10,11,11]输出: 10提示:1 <= nums.length <= 1050 <= nums[i] <= 105进阶: 采用的方案可以在 O(log n) 时间复杂度和 O(1) 空间复杂度中运行吗?注意:本题与主站原创 2022-01-20 11:34:08 · 711 阅读 · 0 评论 -
剑指 Offer II 069. 山峰数组的顶部
符合下列属性的数组 arr 称为 山峰数组(山脉数组) :arr.length >= 3存在 i(0 < i < arr.length - 1)使得:arr[0] < arr[1] < … arr[i-1] < arr[i]arr[i] > arr[i+1] > … > arr[arr.length - 1]给定由整数组成的山峰数组 arr ,返回任何满足 arr[0] < arr[1] < … arr[i - 1] < ar原创 2022-01-20 10:38:26 · 115 阅读 · 0 评论 -
(需复盘)剑指 Offer II 031. 最近最少使用缓存
运用所掌握的数据结构,设计和实现一个 LRU (Least Recently Used,最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到原创 2022-01-19 17:10:01 · 494 阅读 · 0 评论 -
剑指 Offer II 068. 查找插入位置
给定一个排序的整数数组 nums 和一个整数目标值 target ,请在数组中找到 target ,并返回其下标。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入:原创 2022-01-19 09:21:01 · 129 阅读 · 0 评论 -
剑指 Offer II 056. 二叉搜索树中两个节点之和
给定一个二叉搜索树的 根节点 root 和一个整数 k , 请判断该二叉搜索树中是否存在两个节点它们的值之和等于 k 。假设二叉搜索树中节点的值均唯一。示例 1:输入: root = [8,6,10,5,7,9,11], k = 12输出: true解释: 节点 5 和节点 7 之和等于 12示例 2:输入: root = [8,6,10,5,7,9,11], k = 22输出: false解释: 不存在两个节点值之和为 22 的节点提示:二叉树的节点个数的范围是 [1, 104].原创 2022-01-18 11:16:49 · 180 阅读 · 0 评论 -
迭代实现二叉树的中序遍历
剑指 Offer 一书中说到:1、递归有固有的局限性,如果二叉树的深度太大,可能会栈溢出2、递归的代码太简单,面试的时候希望增加难度这里手写一个中序遍历,定义节点如下:class TreeNode { int val; TreeNode left, right; public TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = left;原创 2022-01-17 15:07:41 · 143 阅读 · 0 评论 -
剑指 Offer II 055. 二叉搜索树迭代器
实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器:BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在于 BST 中的数字,且该数字小于 BST 中的任何元素。boolean hasNext() 如果向指针右侧遍历存在数字,则返回 true ;否则返回 false 。int next()将指针向右移动,然后返回指针处的数字。原创 2022-01-17 14:37:19 · 179 阅读 · 0 评论 -
剑指 Offer II 054. 所有大于等于节点的值之和
给定一个二叉搜索树,请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例 1:输入:root = [4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]示例 2原创 2022-01-17 14:13:25 · 82 阅读 · 0 评论 -
剑指 Offer II 053. 二叉搜索树中的中序后继
给定一棵二叉搜索树和其中的一个节点 p ,找到该节点在树中的中序后继。如果节点没有中序后继,请返回 null 。节点 p 的后继是值比 p.val 大的节点中键值最小的节点,即按中序遍历的顺序节点 p 的下一个节点。示例 1:输入:root = [2,1,3], p = 1输出:2解释:这里 1 的中序后继是 2。请注意 p 和返回值都应是 TreeNode 类型。示例 2:输入:root = [5,3,6,2,4,null,null,1], p = 6输出:null解释:因为给出的节原创 2022-01-17 11:25:56 · 87 阅读 · 0 评论 -
剑指 Offer II 052. 展平二叉搜索树
给你一棵二叉搜索树,请 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。输入:root = [5,3,6,2,4,null,8,1,null,null,null,7,9]输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]示例 2:输入:root = [5,1,7]输出:[1,null,5,null,7]提示:树中节点数的取值范围是 [1, 1原创 2022-01-17 11:12:28 · 102 阅读 · 0 评论 -
剑指 Offer II 051. 节点之和最大的路径
路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给定一个二叉树的根节点 root ,返回其 最大路径和,即所有路径上节点值之和的最大值。示例 1:输入:root = [1,2,3]输出:6解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6示例 2:输入:root = [-10,9,20,null原创 2022-01-16 15:05:14 · 111 阅读 · 0 评论 -
面经总结(持续更新)
C:\Users\62459\AppData\Roaming\Typora\typora-user-images集合类:linkedlist 和 arrayList 区别linkedList 是基于链表,所以增加和删除数据要更快,arrayList 是基于动态数组,所以随机查找的效率更高,linkedList 和 arrayList 都实现了 List 接口,不同的是,LinkedList 多实现了 deque 的接口,所以有类似 addLast,removeLast 的方法,可以当做双端队列来使用原创 2022-01-15 16:17:30 · 720 阅读 · 0 评论 -
牛客选择错题本二
1、下面有关forward和redirect的描述,正确的是() ?正确答案: B C D 你的答案: A B C D (错误)forward是服务器将控制权转交给另外一个内部服务器对象,由新的对象来全权负责响应用户的请求执行forward时,浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址执行redirect时,服务器端告诉浏览器重新去请求地址forward是内部重定向,redirect是外部重定向redirect默认将产生301 Permanently moved的原创 2021-11-20 16:34:23 · 489 阅读 · 0 评论 -
剑指 Offer II 050. 向下的路径节点之和
给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。示例 1:输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8输出:3解释:和等于 8 的路径有 3 条,如图所示。示例 2:输入:root = [5,4,8,11,null,13,4,7,2,n原创 2022-01-15 09:07:56 · 159 阅读 · 0 评论 -
剑指 Offer II 049. 从根节点到叶节点的路径数字之和
给定一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。每条从根节点到叶节点的路径都代表一个数字:例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。计算从根节点到叶节点生成的 所有数字之和 。叶节点 是指没有子节点的节点。示例 1:输入:root = [1,2,3]输出:25解释:从根到叶子节点路径 1->2 代表数字 12从根到叶子节点路径 1->3 代表数字 13因此,数字总和 = 12 + 13 =原创 2022-01-14 09:25:19 · 114 阅读 · 0 评论 -
剑指 Offer II 048. 序列化与反序列化二叉树
序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。示例 1:输入:root = [1,2,3,null,null,4,5]输出:[1,2,3,null,null,4,5]示例 2:输入:root =原创 2022-01-14 09:16:57 · 82 阅读 · 0 评论 -
剑指 Offer II 047. 二叉树剪枝
给定一个二叉树 根节点 root ,树的每个节点的值要么是 0,要么是 1。请剪除该二叉树中所有节点的值为 0 的子树。节点 node 的子树为 node 本身,以及所有 node 的后代。示例 1:输入: [1,null,0,0,1]输出: [1,null,0,null,1]解释:只有红色节点满足条件“所有不包含 1 的子树”。右图为返回的答案。示例 2:输入: [1,0,1,0,0,0,1]输出: [1,null,1,null,1]解释:示例 3:输入: [1,1,0,1,原创 2022-01-14 08:53:41 · 109 阅读 · 0 评论