随笔分类 -  数据结构与算法

0129-求根节点到叶节点数字之和
摘要:给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 → 2 → 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和 。 叶节点 是指没有子节点的节点。 示例 1: 输入: 阅读全文

posted @ 2021-11-20 23:11 进击的davis 阅读(49) 评论(0) 推荐(0)

1382-二叉搜索树变平衡树
摘要:给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。 如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二叉搜索树是 平衡的 。 如果有多种构造方法,请你返回任意一种。 示例: 输入:root = [1,null,2,null,3, 阅读全文

posted @ 2021-11-20 22:53 进击的davis 阅读(48) 评论(0) 推荐(0)

0100-相同的树
摘要:给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p = [1,2,3], q = [1,2,3] 输出:true 示例 2: 输入:p = [1,2], q = [1,null,2] 输 阅读全文

posted @ 2021-11-20 18:18 进击的davis 阅读(106) 评论(0) 推荐(0)

0236-二叉树的最近公共祖先
摘要:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例 1: 输入:root = [3,5,1,6,2 阅读全文

posted @ 2021-11-20 13:18 进击的davis 阅读(46) 评论(0) 推荐(0)

0235-二叉搜索树的最近公共祖先
摘要:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6, 阅读全文

posted @ 2021-11-20 12:05 进击的davis 阅读(44) 评论(0) 推荐(0)

0108-有序数组转为二叉搜索树
摘要:给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1: 输入:nums = [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 阅读全文

posted @ 2021-11-20 10:06 进击的davis 阅读(53) 评论(0) 推荐(0)

0669-修剪二叉搜索树
摘要:给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树不应该改变保留在树中的元素的相对结构(即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在唯一的答案。 所以结果应当返回修剪好的二叉 阅读全文

posted @ 2021-11-19 23:48 进击的davis 阅读(67) 评论(0) 推荐(0)

0450-删除二叉搜索树中的节点
摘要:给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。 一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点; 如果找到了,删除它。 示例 1: 输入:root = [5,3,6 阅读全文

posted @ 2021-11-19 23:07 进击的davis 阅读(95) 评论(0) 推荐(0)

0701-二叉搜索树的插入操作
摘要:给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。 示例 1: 输入:root 阅读全文

posted @ 2021-11-19 22:18 进击的davis 阅读(123) 评论(0) 推荐(0)

0538-二叉搜索树转为累加树
摘要:给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 阅读全文

posted @ 2021-11-19 08:30 进击的davis 阅读(42) 评论(0) 推荐(0)

0530-二叉搜索树的最小绝对差
摘要:给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数,其数值等于两值之差的绝对值。 示例 1: 输入:root = [4,2,6,1,3] 输出:1 示例 2: 输入:root = [1,0,48,null,null,12,49] 输出:1 提示: 树 阅读全文

posted @ 2021-11-18 23:16 进击的davis 阅读(46) 评论(0) 推荐(0)

0501-二叉搜索树中的众数
摘要:给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树 例如: 给定 BST [1,null,2,2], 返回[2 阅读全文

posted @ 2021-11-18 08:44 进击的davis 阅读(48) 评论(0) 推荐(0)

0098-验证二叉搜索树
摘要:给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入:root = [2,1,3] 输出:true 示例 2 阅读全文

posted @ 2021-11-17 23:05 进击的davis 阅读(46) 评论(0) 推荐(0)

0700-二叉搜索树中的搜索
摘要:给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 例如, 给定二叉搜索树: 和值: 2 你应该返回如下子树: 在上述示例中,如果要找的值是 5,但因为没有节点值为 5,我们应该返回 NULL。 来源 阅读全文

posted @ 2021-11-17 21:54 进击的davis 阅读(16) 评论(0) 推荐(0)

0617.-合并二叉树
摘要:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。 示例 1: 注意: 合并必须从两个树的根节点开始。 来 阅读全文

posted @ 2021-11-17 08:42 进击的davis 阅读(82) 评论(0) 推荐(0)

0654-最大二叉树
摘要:给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的 最大二叉树 定义如下: 1.二叉树的根是数组 nums 中的最大元素。 2.左子树是通过数组中 最大值左边部分 递归构造出的最大二叉树。 3.右子树是通过数组中 最大值右边部分 递归构造出的最大二叉树。 返回有给定数组 nums 阅读全文

posted @ 2021-11-16 22:56 进击的davis 阅读(82) 评论(0) 推荐(0)

0106-105-从中序与后序遍历序列中构造二叉树
摘要:根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 来源:力扣(LeetCode) 链接:https://leetc 阅读全文

posted @ 2021-11-16 22:19 进击的davis 阅读(34) 评论(0) 推荐(0)

0226-翻转二叉树
摘要:翻转一棵二叉树。 示例: 输入: 输出: 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。 来源:力扣(LeetCode) 链接:https://leet 阅读全文

posted @ 2021-11-16 08:27 进击的davis 阅读(51) 评论(0) 推荐(0)

0112-路径之和 & 0113-所有路径之和
摘要:给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root = [5,4,8,11,null,13,4,7,2,nu 阅读全文

posted @ 2021-11-15 23:25 进击的davis 阅读(44) 评论(0) 推荐(0)

0513-找树左下角的值
摘要:给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root = [2,1,3] 输出: 1 示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 提示: 二叉树的节点个数的范围是 阅读全文

posted @ 2021-11-15 21:47 进击的davis 阅读(45) 评论(0) 推荐(0)

导航