Leetcode 538:把二叉搜索树转化为累加树

给出二叉搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。

解题思路:

其实就是相当于反中序遍历,然后当前结点的值加上之前遍历结点值的和。

java 复制代码
public class title538 {

    int sum=0;   //sum为之前节点的和
    public TreeNode convertBST(TreeNode root) {
        traversal(root);
        return root;
    }

    //反中序遍历
    public void traversal(TreeNode root){
        if(root==null) return;
        //遍历顺序为 右,中,左
        traversal(root.right);
        root.val=root.val+sum;
        sum=root.val;
        traversal(root.left);
    }
}
相关推荐
怎么没有名字注册了啊2 分钟前
求一个矩阵中的鞍点
数据结构·算法
Greedy Alg3 分钟前
LeetCode 74. 搜索二维矩阵
算法
青衫码上行19 分钟前
【从0开始学习Java | 第22篇】反射
java·开发语言·学习
小猪咪piggy26 分钟前
【算法】day7 滑动窗口+二分查找
算法
superlls28 分钟前
(Spring)Spring Boot 中 @Valid 与全局异常处理器的联系详解
java·spring boot·后端
仟千意34 分钟前
数据结构:二叉树
数据结构·算法
一水鉴天1 小时前
整体设计 逻辑系统程序 之34七层网络的中台架构设计及链路对应讨论(含 CFR 规则与理 / 事代理界定)
人工智能·算法·公共逻辑
DuHz1 小时前
C程序中的数组与指针共生关系
linux·c语言·开发语言·嵌入式硬件·算法
而后笑面对1 小时前
力扣2025.10.19每日一题
算法·leetcode·职场和发展
我星期八休息1 小时前
C++智能指针全面解析:原理、使用场景与最佳实践
java·大数据·开发语言·jvm·c++·人工智能·python