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);
    }
}
相关推荐
one_love_zfl7 分钟前
java面试-微服务组件篇
java·微服务·面试
一只大袋鼠10 分钟前
Java进阶:CGLIB动态代理解析
java·开发语言
环流_24 分钟前
HTTP 协议的基本格式
java·网络协议·http
爱滑雪的码农25 分钟前
Java基础十三:Java中的继承、重写(Override)与重载(Overload)详解
java·开发语言
【 】42328 分钟前
C++&STL(Standard Template Library,标准模板库)
java·开发语言·c++
茉莉玫瑰花茶29 分钟前
LangChain 核心组件 [ 2 ]
java·数据库·langchain
Wect39 分钟前
LeetCode 5. 最长回文子串:DP + 中心扩展
前端·算法·typescript
信徒_42 分钟前
ID 生成技术选型
java
糖果店的幽灵43 分钟前
决策树详解与sklearn实战
算法·决策树·sklearn
Lewiis1 小时前
趣谈排序算法
算法·排序算法