![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树
不想在山底徘徊的小蜗牛
走着瞧,才能把未来看的更好。
展开
-
leetcode337,打家劫舍III
题目描述: 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。 计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。 示例 1: 输入: [3,2,3,null,3,null,1] 3 / \ 2 3 \ \ 3 1 输出:原创 2021-09-01 10:20:36 · 53 阅读 · 0 评论 -
看了就会的线段树
宝藏知识点链接 线段树: 1,相当于用树的结点表示一个区间,结点值存储与数组中,左右子节点是父节点的二分区间 2,不难发现,线段树的使用中的共性: 参数传入左右端点,代表当前结点所表示的区间 参数传入当前位置pos,代表当前区间的区间和所在val数组中的位置 通过二分对左右子树操作(类似于树的操作) 实现代码: 递归创建,相当于后续遍历 #include <iostream> #include<vector> using namespace std; class Segment_原创 2021-08-19 16:38:17 · 62 阅读 · 0 评论 -
leetcode1373. 二叉搜索子树的最大键值和
题目描述: 给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。 二叉搜索树的定义如下: 任意节点的左子树中的键值都 小于 此节点的键值。 任意节点的右子树中的键值都 大于 此节点的键值。 任意节点的左子树和右子树都是二叉搜索树。 示例 1: 输入:root = [1,4,3,2,4,2,5,null,null,null,null,null,null,4,6] 输出:20 解释:键值为 3 的子树是和最大的二叉搜索树。 示例 2: 输入:root = [4,3,null,1,2原创 2021-08-01 16:47:40 · 225 阅读 · 0 评论 -
leecode:101. 对称二叉树
题目描述: 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / 2 2 / \ / 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / 2 2 \ 3 3 进阶: 你可以运用递归和迭代两种方法解决这个问题吗? 通过次数364,790提交次数654,901 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/symmetri原创 2021-07-26 10:28:31 · 90 阅读 · 0 评论 -
leecode:437. 路径总和 III
题目描述: 给定一个二叉树的根节点 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,原创 2021-07-26 10:22:32 · 62 阅读 · 0 评论 -
leecode:112. 路径总和
题目描述: 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22 输出:true 示例 2: 输入:root = [1,2,3], targetSum = 5 输出:false 示例 3: 输入:roo原创 2021-07-26 10:16:59 · 67 阅读 · 0 评论 -
leecode:103. 二叉树的锯齿形层序遍历
题目描述: 给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回锯齿形层序遍历如下: [ [3], [20,9], [15,7] ] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal 著作原创 2021-07-26 10:07:38 · 62 阅读 · 0 评论 -
leecode:129. 求根节点到叶节点数字之和
题目描述: 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和 。 叶节点 是指没有子节点的节点。 示例 1: 输入:root = [1,2,3] 输出:25 解释: 从根到叶子节点路径 1->2 代表数字 12 从根到叶子节点路径 1->3 代表数字 13 因此,数字总和 = 12 +原创 2021-07-26 10:01:19 · 86 阅读 · 0 评论