
leetcode
文章平均质量分 77
liulanba
这个作者很懒,什么都没留下…
展开
-
leetcode--从中序与后序遍历序列构造二叉树
给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树。原创 2024-07-09 23:43:07 · 765 阅读 · 0 评论 -
leetcode--从前序与中序遍历序列构造二叉树
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。原创 2024-07-09 23:38:19 · 661 阅读 · 0 评论 -
leetcode--恢复二叉搜索树
给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:输入:root = [1,3,null,null,2]输出:[3,1,null,null,2]解释:3 不能是 1 的左孩子,因为 3 > 1。交换 1 和 3 使二叉搜索树有效。示例 2:输入:root = [3,1,4,null,null,2]输出:[2,1,4,null,null,3]解释:2 不能在 3 的右子树中,因为 2 < 3。原创 2024-07-09 23:27:44 · 605 阅读 · 0 评论 -
leetcode--验证二叉搜索树
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:root = [2,1,3]输出:true示例 2:输入:root = [5,1,4,null,null,3,6]输出:false解释:根节点的值是 5 ,但是右子节点的值是 4。提示:树中节点数目范围在[1, 104] 内。原创 2024-07-09 23:19:55 · 953 阅读 · 0 评论 -
leetcode--从先序遍历还原二叉树
我们从二叉树的根节点 root 开始进行深度优先搜索。在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出 S,还原树并返回其根节点 root。示例 1:输入:“1-2–3–4-5–6–7”输出:[1,2,5,3,4,6,7]示例 2:输入:“1-2–3—4-5–6—7”原创 2024-07-09 23:01:20 · 385 阅读 · 0 评论 -
leetcode--二叉搜索树中第K小的元素
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。示例 1:输入:root = [3,1,4,null,2], k = 1输出:1示例 2:输入:root = [5,3,6,2,4,null,null,1], k = 3输出:3提示:树中的节点数为 n。原创 2024-07-09 13:30:51 · 726 阅读 · 0 评论 -
leetcode--二叉树中的最大路径和
我们定义一个递归函数 max_gain(node) 来计算节点的最大贡献值。这个函数计算从当前节点出发,延伸到左右子树所能获得的最大路径和。计算当前节点的最大贡献值如果当前节点为空,返回0。计算左子树的最大贡献值,记为 left_gain。如果 left_gain 是负值,设置为0,因为负值不会增加路径和。计算右子树的最大贡献值,记为 right_gain。如果 right_gain 是负值,设置为0,因为负值不会增加路径和。原创 2024-07-09 13:22:20 · 1387 阅读 · 1 评论 -
leetcode--层数最深叶子节点的和
给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和。示例 1:输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]输出:15示例 2:输入:root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]输出:19提示:树中节点数目在范围 [1, 104] 之间。原创 2024-07-09 13:08:45 · 488 阅读 · 0 评论 -
leetcode--二叉搜索子树的最大键值和
给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。二叉搜索树的定义如下:任意节点的左子树中的键值都 小于 此节点的键值。任意节点的右子树中的键值都 大于 此节点的键值。任意节点的左子树和右子树都是二叉搜索树。示例 1:输入:root = [1,4,3,2,4,2,5,null,null,null,null,null,null,4,6]输出:20解释:键值为 3 的子树是和最大的二叉搜索树。原创 2024-07-05 13:06:34 · 823 阅读 · 0 评论 -
leetcode--二叉树中的最长交错路径
给你一棵以 root 为根的二叉树,二叉树中的交错路径定义如下:选择二叉树中 任意 节点和一个方向(左或者右)。如果前进方向为右,那么移动到当前节点的的右子节点,否则移动到它的左子节点。改变前进方向:左变右或者右变左。重复第二步和第三步,直到你在树中无法继续移动。交错路径的长度定义为:访问过的节点数目 - 1(单个节点的路径长度为 0 )。请你返回给定树中最长 交错路径 的长度。原创 2024-07-04 10:50:07 · 1332 阅读 · 0 评论