随笔分类 -  leetccode

力扣刷题
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)

0404-左子叶之和
摘要:计算给定二叉树的所有左叶子之和。 示例: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/sum-of-left-leaves 参考: https://leetcode-cn. 阅读全文

posted @ 2021-11-15 08:34 进击的davis 阅读(63) 评论(0) 推荐(0)

0257-二叉树的所有路径
摘要:给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root = [1,2,3,null,5] 输出:["1->2->5","1->3"] 示例 2: 输入:root = [1] 输出:["1"] 提示: 树中节 阅读全文

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

0110-平衡二叉树
摘要:给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:true 示例 2: 输入:root = [1,2,2,3,3, 阅读全文

posted @ 2021-11-14 22:43 进击的davis 阅读(39) 评论(0) 推荐(0)

0222.-完全二叉树的节点个数
摘要:给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。 示例 1: 输入:root = 阅读全文

posted @ 2021-11-14 21:44 进击的davis 阅读(76) 评论(0) 推荐(0)

导航