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);
    }
}
相关推荐
mghio4 小时前
Dubbo 中的集群容错
java·微服务·dubbo
咖啡教室9 小时前
java日常开发笔记和开发问题记录
java
咖啡教室9 小时前
java练习项目记录笔记
java
鱼樱前端9 小时前
maven的基础安装和使用--mac/window版本
java·后端
RainbowSea10 小时前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq
RainbowSea10 小时前
5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
java·消息队列·rabbitmq
算AI11 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
李少兄12 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
此木|西贝12 小时前
【设计模式】原型模式
java·设计模式·原型模式