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);
    }
}
相关推荐
是一个Bug1 小时前
Java基础50道经典面试题(四)
java·windows·python
Slow菜鸟1 小时前
Java基础架构设计(三)| 通用响应与异常处理(分布式应用通用方案)
java·开发语言
wadesir1 小时前
Rust中的条件变量详解(使用Condvar的wait方法实现线程同步)
开发语言·算法·rust
我是Superman丶1 小时前
《Spring WebFlux 实战:基于 SSE 实现多类型事件流(支持聊天消息、元数据与控制指令混合传输)》
java
廋到被风吹走2 小时前
【Spring】常用注解分类整理
java·后端·spring
是一个Bug2 小时前
Java基础20道经典面试题(二)
java·开发语言
yugi9878382 小时前
基于MATLAB实现协同过滤电影推荐系统
算法·matlab
TimberWill2 小时前
哈希-02-最长连续序列
算法·leetcode·排序算法
Z_Easen2 小时前
Spring 之元编程
java·开发语言
Morwit2 小时前
【力扣hot100】64. 最小路径和
c++·算法·leetcode