ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

leetcode做题笔记1038. 从二叉搜索树到更大和树

2026/8/15 17:21:13 拓冰建站 浏览量
leetcode做题笔记1038. 从二叉搜索树到更大和树

给定一个二叉搜索树 root (BST),请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。

提醒一下, 二叉搜索树 满足下列约束条件:

  • 节点的左子树仅包含键 小于 节点键的节点。
  • 节点的右子树仅包含键 大于 节点键的节点。
  • 左右子树也必须是二叉搜索树。

 

示例 1:

输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]

示例 2:

输入:root = [0,null,1]
输出:[1,null,1]

 思路一:递归

c++解法

class Solution {
public:int find(TreeNode* root,int val){if(!root) return 0;int res = 0;res += find(root->right,val);res += root->val;root->val = res + val;res += find(root->left,root->val);return res;}TreeNode* bstToGst(TreeNode* root) {find(root,0);return root;}
};