easy code
课程基础
scl、
回首往昔 更进一步 ---工作1年的快乐风男♂
展开
-
剑指Offer9_一维、二维前缀和_区域和检索、二维区域和检索
一、区域和检索举栗1、解答(一维前缀和)分析对于一维的数组,prefix[i+1]存储 0 ~ i 区间的所有元素值和(这里其实prefix[i]也是可行的,只不过为了方便),需要求left ~ right 区间的元素值和,只需要 prefix[right + 1] - prefix[left] 即可细节问题就是prefix[i]还是prefix[i+1],不过道理都一样class NumArray { int[] sums; public NumArray(int[]原创 2021-10-12 18:05:32 · 114 阅读 · 0 评论 -
CodeTop8_双指针、递归_ 删除排序链表中的重复元素 II
一、题目描述存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。返回同样按升序排列的结果链表。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解答分析在 删除排序链表中的重复元素| 的基础上拓展,要求将原创 2021-11-18 15:55:37 · 93 阅读 · 0 评论 -
CodeTop10_分治(归并排序)、插入排序、双指针_链表排序
一、题目描述给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sort-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解答分析要求O(n log n) 时间复杂度,就是要求分治(归并排序)主要涉及的就是:链表排序、两条有序链表合并1、链原创 2021-11-19 18:44:14 · 387 阅读 · 0 评论 -
LeetCode1_理解DP的重叠子问题_斐波那锲数列_非递归循环迭代+DPTable 答案要求取模 1e9+7(1000000007)
题目写一个函数,输入 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示例 2:输入:n = 5输出:5来源:力扣(原创 2020-11-24 23:48:09 · 896 阅读 · 0 评论 -
LeetCode10_相同的树(深度递归、广度队列、二叉树问题系列模板)
一、题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。二、题解2.1深度递归/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val)原创 2020-12-12 17:08:19 · 166 阅读 · 0 评论 -
CodeTop11_滑动窗口、Hash_最小覆盖字串
题目描述给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保证它是唯一的答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-window-substring著作权归领扣网络所有。商业转载请联系官方授权,非商原创 2021-11-24 16:00:36 · 95 阅读 · 0 评论 -
CodeTop12_二维动态规划_最长公共子序
一、题目描述给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。来源:力扣(LeetCode)链接:https://leetc原创 2021-11-25 11:08:24 · 128 阅读 · 0 评论 -
LeetCode28_迭代、DFS_删点成林
题目描述给出二叉树的根节点 root,树上每个节点都有一个不同的值。如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。返回森林中的每棵树。你可以按任意顺序组织答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/delete-nodes-and-return-forest著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。我的解答分析开始想着很简单,直接原创 2021-08-21 22:02:53 · 134 阅读 · 0 评论 -
剑指Offer5_双动态规划_乘积最大子数组
题目描述给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。https://leetcode-cn.com/problems/maximum-product-subarray/solution/cheng-ji-zui-da-zi-shu-zu-by-leetcode-solution/一、我的解答之前最大子序和思路,,不通过,因为情况处理未完全, dp[i] = Math.max(dp[i-1] * nums[i],nums原创 2021-09-29 18:02:27 · 170 阅读 · 0 评论 -
LeetCode20_递归+指针_BST转化为特殊链表
题目描述二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求依然符合二叉搜索树的性质,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。返回转换后的单向链表的头节点。我的解答中序遍历 + 移动p指针21 / 34 个通过测试用例:Error - Found cycle in the TreeNode/** * Definition for a binary tree node.原创 2021-07-19 12:56:26 · 119 阅读 · 0 评论 -
剑指Offer2_单调栈_判断是否是BST的后序遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。我的解答1.重新建树(未通过)分析最简单容易想到的办法,序列排序,重新建树,后序遍历对比部分样例通过,因为BSF对于递增序列可以有多种形式class Solution { int[] post; int index = 0; boolean flag = true; public boolean ve原创 2021-09-14 17:46:07 · 121 阅读 · 0 评论 -
LeetCode24_动态规划、树_打家劫舍I、II、III系列
一、题目描述1你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。解答最优解堆积成最终答案,求最值很明显可以使用动态规划base case: dp[0] = nums[0],dp[1] = max(nums[0],nums[1])重叠子问题:前面的决定影原创 2021-07-23 23:35:14 · 210 阅读 · 0 评论 -
剑指Offer6_堆、快排_最小的k个数
一、题目描述输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。二、解答1.直接调API直接向面试官展示调API的熟练度…class Solution { public int[] getLeastNumbers(int[] arr, int k) { Arrays.sort(arr); int[] res = new int[k]; for(int i原创 2021-10-11 21:51:03 · 142 阅读 · 0 评论 -
LeetCode25_双队列、回溯、双重递归、前缀和_路径总和系列|、||、|||
路径总和|给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。叶子节点 是指没有子节点的节点。我的解答分析可以用bfs双队列,一个用于遍历节点,一个用于存储根节点到该层节点对应值(根节点从上到下到每个节点只有一条路径),直到叶子,得出结果。可以用递归,经过一个节点就 sum -= root.val 直到叶子节点判断是否sum == 0 返回结果bfs双队列/*原创 2021-07-25 00:21:56 · 178 阅读 · 0 评论 -
LeetCode11_二叉树的遍历_BFS、DFS分别实现层、前、中、后序
一、题目描述给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。另 后面出现的要求最后返回从底 到顶的 结果形式二、题解2.1BFS迭代、和以往简单的BFS不同,这里要求返回结果的格式,需要处理一下/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode righ原创 2020-12-14 22:56:24 · 190 阅读 · 0 评论 -
CodeTop7_双指针_环形链表||
题目描述给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-c原创 2021-11-11 08:25:28 · 92 阅读 · 0 评论 -
剑指Offer7_大、小顶堆_数据流中的中位数
一、题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-ju-liu-zhong-de-zhong-wei-shu-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解答1、大、小顶堆分析用大顶堆+小顶堆方法原创 2021-10-11 22:15:39 · 132 阅读 · 0 评论 -
LeetCode4_编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。(解决方案:横向扫描、 纵向扫描 、分治 二分查找 、秀儿操作之排序比较头尾)
题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-common-prefix著原创 2020-12-02 00:03:54 · 2181 阅读 · 2 评论 -
LeetCode5_给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合
题目描述应该是bili最近的一道面试题,涉及栈等相关知识给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-parentheses著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。我的解答72/91原创 2020-12-08 22:35:29 · 1165 阅读 · 1 评论 -
LeetCode23_递归、双指针_有序链表构建BST
题目描述给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。注意:有序链表构建的高度平衡的二叉树就是平衡二叉树简单容易想到的就是链表转为有序数组,直接构建,但是这样需要额外的空间。要求空间O(1)的情况下可以使用双指针快慢指针,当快指针走到区间的尽头,满慢指针刚好走到 中间解答链表转有序集合,直接递归构建/** * Definition for singly-linked l原创 2021-07-20 12:12:44 · 119 阅读 · 0 评论 -
CodeTop2_双动态规划、单调栈、双指针_接雨水
题目描述给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2021-11-01 20:00:53 · 197 阅读 · 0 评论 -
CodeTop9_二维动态规划_编辑距离
一、题目描述给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/edit-distance著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解答分析1、状态定义: dp[i][j]表示word1的前i个字母转换成word2的前j个字母所原创 2021-11-19 15:39:42 · 300 阅读 · 0 评论 -
LeetCode8_外观数列_给定一个正整数 n ,输出外观数列的第 n 项。 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。
一、题目描述源自 字节题库的一道简单题给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-a原创 2020-12-10 13:27:45 · 825 阅读 · 1 评论 -
剑指Offer14_滑动窗口、Hash_无重复字符的最长字串
题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解答一、滑动窗口思路滑窗的基本思路,先扩大并不断更新结果,不符合情况收缩class Solution { public int lengthOfLongestSubstring(String s) { if(s == ""){ return 0; } int len = s.length(); Set<Chara原创 2021-10-26 20:42:15 · 69 阅读 · 0 评论 -
LeetCode13_二叉树路径和(DFS递归、BFS双队列)
一、题目描述给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。二、题解2.1DFS递归观察要求我们完成的函数,我们可以归纳出它的功能:询问是否存在从当前节点 root 到叶子路径 ,满足其路径为和 为 sum可以先假定 从根节点开始向下遍历 左、右子节点的时候,将问题化小,假定根节点到当前节点的和 为 val我们需要判断的是,当前节点(如以root.left 为根节点 )是否存在 sum - val原创 2020-12-16 21:46:18 · 174 阅读 · 0 评论 -
CodeTop13_双指针、递归、迭代反转链表_回文链表
CodeTop13_双指针、递归、迭代反转链表_回文链表原创 2021-12-01 19:22:17 · 486 阅读 · 1 评论 -
LeetCode9_数组最大连续子序和(暴力、贪心、分治、动态规划)
一、题目描述梦的开始!!给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-subarray著作权归领扣网络所原创 2020-12-10 22:33:29 · 377 阅读 · 0 评论 -
剑指Offer4_Hash表、原地迭代_复杂链表的复制(深拷贝)
一、题目描述请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解答1-Hash+回溯思路因为涉及当前random的节点可能原创 2021-09-25 17:35:15 · 147 阅读 · 0 评论 -
LeetCode6_合并两个有序链表_将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
题目描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4我的解答这次的速度芜湖~思路之前实现过两个非递减序列合并,对于顺序表和链表 实现略有不同,参考往期博客:数据结构_Java_基于 线性表-单链表的初始化、逆序、去重、非递减序列的合并(开辟新链表先整体插入一个链表全部元素,再遍历另外一个链表原创 2020-12-09 14:33:46 · 1239 阅读 · 0 评论 -
LeetCode17_DFS二叉树(二叉搜索树)的最近公共祖先
题目描述LeetCode236-二叉树的公共祖先,难度:中等我的思路首先先到的是dfs,对于简单的 情况 像示例1 ,可以处理,对于其他情况就不行了也尝试队列、栈但是都没能通过(害…)官方题解感觉写的不太好,一个递归一个存储父节点,有一个题解写的逻辑还算比较清晰题解public class Solution {//所有的递归的返回值有4种可能性,null、p、q、公共祖先 public TreeNode LowestCommonAncestor(TreeNode root, T原创 2021-04-14 21:52:25 · 186 阅读 · 0 评论 -
剑指Offer13_双指针_三数之和
题目描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解答一、双指针思路首先数组排序,然后遍历开始作为第一个元素nums[i],右边元素重新划分双指针边界[原创 2021-10-26 20:19:06 · 113 阅读 · 0 评论 -
LeetCode2_字符串、try、取模_整数反转_给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/revers原创 2020-11-27 13:58:18 · 292 阅读 · 0 评论 -
LeetCode22_递归、hash位置映射_前、中序序列构建二叉树
题目描述给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。解答分析构建二叉树需要 位置索引 进而递归构建 根、左子树、右子树前序序列的位置索引 借助中序序列的位置索引算出长度, 找出 当前递归树的 左、右子树区间中序序列的位置索引 使用hash映射 优化速度,根据值方便找位置索引。即 迅速定位当前树 根节点位置,找出左、右子树区间长度。/** * Definition for a binary tree node. * publ原创 2021-07-20 10:28:16 · 127 阅读 · 0 评论 -
LeetCode27_DFS_寻找树行中的最大值
题目描述给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。我的解答分析首先很容易想到的就是bfs,最后在遍历一遍找最大值。用dfs也能找到,只不过需要list的 size 和 层级level 对应若是 size == level ,证明是新的一层,直接放入list,等会再dfs到该层 节点 就对比替换否则就是之前已经出现过得 层 的节点,list.get(level) 和 root.val 选出一个大的暂时为存入listbfs/** * Definitio原创 2021-07-28 11:06:03 · 181 阅读 · 0 评论 -
CodeTop4_模拟、双指针、递归_K个一组反转链表
题目描述给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-nodes-in-k-group著作权归领扣网络所有。商业转载请联原创 2021-11-02 20:02:58 · 169 阅读 · 0 评论 -
CodeTop6_dfs、bfs、并查集_岛屿数量
题目描述给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/number-of-islands著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解答1、DFS分析修改原数组,将每次dfs到的1修改为0,然后更新结原创 2021-11-07 19:35:58 · 4649 阅读 · 0 评论 -
剑指Offer11_数学、回溯_下一个排列、全排列、全排列||
题目描述实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。简单理解就是全排列,如 1,2,3的全排列有123132213231312321这些排列之间是有序的(有规律)来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/next-permutat原创 2021-10-20 21:34:16 · 194 阅读 · 0 评论 -
LeetCode21_递归_BST的判别(一般递归判断、中序判断有序)
题目描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。ps:需要区分二叉树高度平衡的二叉树二叉搜索树BST平衡二叉树AVL我的解答第一次尝试未通过只判断了 当前节点 < 左儿子节点 && 当前节点 > 右儿子节点这和BST的要求:当前节点 < 所有左节点 && 当前节点原创 2021-07-19 16:50:19 · 148 阅读 · 0 评论 -
LeetCode12_高度平衡的二叉树的判别(暴力从顶到底、提前阻断从底到顶)
一、题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。二、题解2.1暴力从顶到底思路:首先需要 求出树中每个节点的 深度,一个节点的深度 = max(左子树最大深度 , 右子树最大深度)有了深度即可判断二叉树 是否平衡,具体做法类似以前序遍历即对于当前遍历的节点,首先计算左、右子树的深度,如果左右子树的高度差不超过1,在分别递归遍历左右子节点,至全部节点遍历完毕cla原创 2020-12-16 14:06:55 · 213 阅读 · 0 评论 -
剑指Offer1_dfs_树的子结构
一、题目描述输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。我的解答思路很常规需要注意的问题就是递归时需要注意 必须是左、右子完全相同,而不是 目标树左子树 包含 待查找树 左子,这样会漏掉情况1.错误解答/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeN原创 2021-09-12 11:39:47 · 145 阅读 · 0 评论