![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
水番茄
这个作者很懒,什么都没留下…
展开
-
leetcode337打家劫舍3刷题打卡
一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。动态规划其实就是使用状态转移容器来记录状态的变化,这里使用一个长度为2的数组,记录当前结点偷与不投所得到的的最大金钱。小偷又发现了一个新的可行窃的地区。这道题是在树上进行状态转移,涉及到递归,则可以结合递归三步与动归五步。明确的,使用后续遍历,因为通过递归函数的返回值来做下一步计算。通过递归左节点,得到左节点偷与不偷的金钱。通过递归右节点,得到左节点偷与不偷的金钱。抢了该节点则不能抢该节点的孩子节点。使用带备忘录的递归,用。原创 2022-11-25 21:37:38 · 611 阅读 · 0 评论 -
leetcode501二叉搜索树中的众数刷题打卡
由于二叉搜索树的中序遍历是升序的,所以可以用记录前一个节点的方法来处理众数,设置一个窗口变量,某数的频率有多高这个窗口变量就有多大,然后设置一个最大窗口变量来代表结果,下列是其具体处理逻辑。给你一个含重复值的二叉搜索树(BST)的根节点。,找出并返回BST中的所有。如果树中有不止一个众数,可以按。循环根据最大频率值找到与之匹配的。中序遍历二叉树,将节点放入一个。(即,出现频率最高的元素)。左子树和右子树都是二叉搜索树。结点左子树中所含节点的值。结点右子树中所含节点的值。循环找到频率最大的key。...原创 2022-07-22 09:12:19 · 171 阅读 · 0 评论 -
leetcode530二叉搜索树的最小绝对差刷题打卡
给你一个二叉搜索树的根节点root,返回。差值是一个正数,其数值等于两值之差的绝对值。原创 2022-07-18 15:42:39 · 1564 阅读 · 0 评论 -
leetcode98验证二叉搜索树刷题打卡
题目描述给你一个二叉树的根节点 ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:题解思路本题我用了三种方法解题,分别是数组法,递归法,迭代法,他们的核心思想都是利用了二叉搜索树的中序遍历是一个递增的序列数组法,利用中序遍历,将每个节点的值放入一个数组,然后判断这个数组是否是递增的即可递归法,整体代码神似中序的递归使用LONG_MIN而不使用INT_MIN的原因是有一个测试用例是,也就是INT_MIN,而在leetcode中LONG_MIN是-2^64,是比这个测试用例小的,所原创 2022-07-14 13:51:20 · 376 阅读 · 0 评论 -
leetcode700二叉搜索树中的搜索刷题打卡
题目描述给定二叉搜索树(BST)的根节点 和一个整数值 。你需要在 中找到节点值等于 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 。题解思路第一反应想出来的是用遍历来做,做一半发现是搜索树哈哈就加了几个条件过于麻烦了完全利用二叉搜索树的性质的话就是这样很简洁递归也是很简单这道题...原创 2022-07-13 12:27:10 · 1783 阅读 · 0 评论 -
leetcode617合并二叉树刷题打卡
题目描述给你两棵二叉树: 和 。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 的节点将直接作为新二叉树的节点。返回合并后的二叉树。注意: 合并过程必须从两个树的根节点开始。题解思路递归确定参数和返回值。与**“主函数”**一样即可,返回用来主函数和递归函数接收确定终止条件。经历这两个条件的筛选后,肯定两节点都是存在的确定本层逻辑利原创 2022-07-11 11:15:55 · 103 阅读 · 0 评论 -
leetcode654最大二叉树刷题打卡
题目描述给定一个不重复的整数数组 。 最大二叉树 可以用下面的算法从 递归地构建:创建一个根节点,其值为 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。返回 构建的 最大二叉树 。题解思路我的一些方法有点暴力了,导致最后提交后执行用时特别大,但是也许会很好理解这道题我首先写了两个方法,第一个是找最大值的方法,参数有数组和左右下标,根据下标给出的范围来找这个范围中的最大值,代码如下INT_MIN放在****头文件中......原创 2022-07-10 11:47:48 · 224 阅读 · 0 评论 -
leetcode106从中序与后序遍历序列构造二叉树刷题打卡
题目描述:给定两个整数数组 和 ,其中 是二叉树的中序遍历, 是同一棵树的后序遍历,请你构造并返回这颗 二叉树题解思路:由中序遍历序列与后序遍历序列或者与前序遍历序列可以唯一的确定一颗二叉树,本题给出的是中序与后序,则由后序的最后一个结点可以唯一的确定根节点,然后就可以找出中序中的根节点,在中序中,根节点的左右子数组分别代表根节点的左右子树序列,可以使用递归来解递归三部曲:确定参数与返回值确定终止条件确定本层逻辑在中序中找到切割点的索引值,然后遵循一个相同的原则来切割数组,我遵循的是左闭右开的原则,原创 2022-07-09 09:12:10 · 414 阅读 · 0 评论 -
leetcode104二叉树的最大深度刷题打卡
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。关键词: 递归、回溯递归三件套:参数设置与返回值设置终止条件本层逻辑完整代码:......原创 2022-06-19 20:26:08 · 127 阅读 · 0 评论 -
leetcode113路径总和2
回溯原创 2022-06-18 18:07:56 · 134 阅读 · 0 评论 -
leetcode112路径总和刷题打卡
回溯原创 2022-06-18 18:06:47 · 132 阅读 · 0 评论 -
leetcode404左叶子之和刷题打卡
三种遍历手段来解题原创 2022-06-12 19:00:51 · 64 阅读 · 0 评论 -
二叉树的统一迭代遍历法
二叉树原创 2022-05-28 10:13:10 · 104 阅读 · 0 评论 -
leetcode94二叉树的中序遍历(迭代做法)
中序遍历迭代法原创 2022-05-22 01:13:30 · 202 阅读 · 0 评论