树
树的题目
陌丶尘
这个作者很懒,什么都没留下…
展开
-
leetcode每日一题5.31对称二叉树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [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思路:害,这几天被实训和各种东西弄得心烦,都没怎么写题了。直接放代码了,官方题解很详细。而且这题也不算难。/** * Definition for a binary tree node. * public class T原创 2020-05-31 14:52:37 · 123 阅读 · 0 评论 -
leetcode从根到叶的二进制数之和
给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么它表示二进制数 01101,也就是 13 。对树上的每一片叶子,我们都要找出从根到该叶子的路径所表示的数字。以 10^9 + 7 为模,返回这些数字之和。示例:输入:[1,0,1,0,1,0,1]输出:22解释:(100) + (101) + (110) + (111) = 4 + 5 + 6 +原创 2020-05-23 21:01:20 · 142 阅读 · 0 评论 -
leetcode把而二叉搜索树转换成累加树
给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 原始二叉搜索树:5/ 2 13输出: 转换为累加树:18/ 20 13思路:二叉搜索树的中序遍历是递增的,反过来就是递减的,就可以写了。代码如下:/** * Definition for a binary tree node. * public class TreeNode {原创 2020-05-23 20:35:43 · 125 阅读 · 0 评论 -
leetcode二叉搜索树的最小绝对差
给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。示例:输入:1\ 3/2输出:1解释:最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。提示:树中至少有 2 个节点。思路:由于二叉搜索树的性质,中序排列是递增的,又因为我们求的是最小绝对差(并且没有负数),所以我们记录上一个节点,减去此节点的数值,就可以得到最小绝对差。/** * Definition for a binary tree node. * publi原创 2020-05-23 20:20:42 · 204 阅读 · 0 评论 -
leetcode首个公共祖先
设计并实现一个算法,找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意:这不一定是二叉搜索树。例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]…3/…\ 5 …1/ . . . … /\ 6 2… 0 .8…/ \…7 4示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5 和节点 1 的最近公共祖先原创 2020-05-23 20:06:05 · 243 阅读 · 0 评论 -
leetcode后继者
设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。示例 1:输入: root = [2,1,3], p = 1.2/ \1 3输出: 2示例 2:输入: root = [5,3,6,2,4,null,null,1], p = 6 5 / \3 6/ \2 4/1输出: null思路:hhhhh这题和上题一样,我们只需要把List改成List就可以完美解决(当然这种方法不是最优,但原创 2020-05-16 11:16:05 · 206 阅读 · 0 评论 -
leetcode合法二叉搜索树
实现一个函数,检查一棵二叉树是否为二叉搜索树。示例 1:输入:2/ 1 3输出: true示例 2:输入:5/ 1 4/ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。根节点的值为 5 ,但是其右子节点值为 4 。思路:第一眼想到的方法就是遍历左右子树,取左子树的max与右子树的min与根节点进行判断。看了一下题解,发现可以用中序遍历,于是百度了一下三种遍历方法。写完之后发现有个【1,1】不会过,看了一下其他人的讨论,原创 2020-05-16 10:55:11 · 133 阅读 · 0 评论 -
leetcode检查平衡性
实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。示例 1:给定二叉树 [3,9,20,null,null,15,7]3/ 9 20/ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]1/ 2 2/ 3 3/ 4 4返回 false 。思路:本题采用递归来返回左右子树的高度,最后加个判断左右子树的高度是否超过1。代码如下:/** * D原创 2020-05-16 10:13:10 · 183 阅读 · 0 评论