首页 > 试题广场 >

将二叉搜索树改为累加树

[编程题]将二叉搜索树改为累加树
  • 热度指数:1137 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个二叉搜索树,树上的节点各不相同,请你将其修改为累加树,使每个节点的值变成原树中更大节点之和。

二叉搜索树的定义是任一节点的左子树的任意节点的值小于根节点的值,右子树则相反。

数据范围:树上节点数满足 ,节点上的值满足

样例图1:
样例图2:
示例1

输入

{0,#,1}

输出

{1,#,1}
示例2

输入

{1,0,2}

输出

{3,3,2}

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
头像 xqxls
发表于 2022-01-14 18:15:37
题意整理 给定一个二叉搜索树,树上的节点各不相同。 现在要将其修改为累加树,使每个节点的值变成原树中更大节点之和。 方法一(递归) 1.解题思路 由于二叉搜索树的左子树节点值总是小于当前节点,右子树节点值总是大于当前节点。所以按右、根、左顺序遍历时,树中的节点值一定是从大到小变化的,只要在遍历的 展开全文
头像 牛客马MAXEY
发表于 2023-10-13 15:03:02
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) { 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-08 23:19:13
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int v 展开全文
头像 fred-coder
发表于 2022-04-18 23:30:38
dfs, 以 右->根->左 的顺序进行叠加, 每次叠加时需要加上之前的值总和, 则设置一个全局变量记录 # class TreeNode: # def __init__(self, x): # self.val = x # self.left = 展开全文
头像 王小牛123
发表于 2022-07-23 14:30:25
# class TreeNode: #     def __init__(self, x): #         sel 展开全文
头像 a_fighter_named_rudy
发表于 2022-10-28 17:01:34
解答:根据此题的题意,访问顺序为右根左,得先一直访问到最右下角的点,即最大点,记录这个最大值max,然后因为没有比最大还大的所以不更新,然后往上更新根结点,根结点+=max,然后更新max,把这个逻辑写在右根左的中间即中序遍历。时间复杂度为O(n),空间复杂度为O(1)。 class& 展开全文
头像 爱写算法的小哥
发表于 2024-04-07 19:53:58
#coding:utf-8 # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、 展开全文
头像 代码界的小白
发表于 2022-02-18 00:17:16
题目主要信息 给定一个二叉搜索树,树上的节点各不相同,请你将其修改为累加树,使每个节点的值变成原树中更大节点之和。 二叉搜索树的定义是任一节点的左子树的任意节点的值小于根节点的值,右子树则相反。 方法一:递归 具体方法 由于本题的树是二叉搜索树,二叉搜索树有一个很重要的性质,就是中序遍历后的得到的结 展开全文
头像 17c89
发表于 2024-04-13 13:31:28
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int v 展开全文
头像 CroMarmot
发表于 2022-01-08 00:14:06
题意 把二叉搜索数改为累加树 限制: 节点数不大于10410^4104 方法 从大到小找节点并加和 因为原树是二叉搜索树,所以节点大小关系为左<根<右 现在题目要求把每个节点的值,变为比原树中更大节点之和.因此按照, 右->根->左的顺序遍历按大到小找出节点, 最后进行加和即 展开全文