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);
    }
}
相关推荐
diediedei4 分钟前
C++中的适配器模式变体
开发语言·c++·算法
Timmylyx05188 分钟前
Codeforces Round 1075 (Div. 2) 题解
算法·codeforces·比赛日记
June bug12 分钟前
(#数组/链表操作)最长上升子序列的长度
数据结构·程序人生·leetcode·链表·面试·职场和发展·跳槽
hadage23316 分钟前
--- 力扣oj柱状图中最大的矩形 单调栈 ---
算法·leetcode·职场和发展
哪里不会点哪里.16 分钟前
Spring MVC 核心原理解析:从请求到响应到底发生了什么?
java·spring·mvc
json{shen:"jing"}16 分钟前
18. 四数之和
数据结构·算法·leetcode
千逐-沐风16 分钟前
SMU-ACM2026冬训周报1st
算法
天赐学c语言17 分钟前
1.25 - 零钱兑换 && 理解右值以及move的作用
c++·算法·leecode
WKP941818 分钟前
线程并行控制CompletableFuture
java·开发语言
北冥湖畔的燕雀20 分钟前
C++智能指针:告别内存泄漏的利器
c++·算法