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);
    }
}
相关推荐
多米Domi0115 小时前
0x3f 第19天 javase黑马81-87 ,三更1-23 hot100子串
python·算法·leetcode·散列表
Da Da 泓5 小时前
多线程(七)【线程池】
java·开发语言·线程池·多线程
历程里程碑6 小时前
滑动窗口最大值:单调队列高效解法
数据结构·算法·leetcode
To Be Clean Coder6 小时前
【Spring源码】getBean源码实战(三)
java·mysql·spring
Wokoo76 小时前
开发者AI大模型学习与接入指南
java·人工智能·学习·架构
課代表6 小时前
从初等数学到高等数学
算法·微积分·函数·极限·导数·积分·方程
ullio6 小时前
arc206d - LIS ∩ LDS
算法
电摇小人6 小时前
我的“C++之旅”(博客之星主题作文)
java·开发语言
资生算法程序员_畅想家_剑魔6 小时前
Java常见技术分享-23-多线程安全-总结
java·开发语言
等等小何6 小时前
leetcode1593拆分字符串使唯一子字符串数目最大
算法