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);
    }
}
相关推荐
2301_7926748612 小时前
java学习day29(juc)
java·开发语言·学习
啊我不会诶12 小时前
2024CCPC长春邀请赛
算法
珂朵莉MM12 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--启发式算法+操作因子设计
人工智能·算法
希望永不加班13 小时前
SpringBoot 自动配置类加载顺序与优先级
java·spring boot·后端·spring·mybatis
纸鸢|13 小时前
从“一锤子买卖“到“持续价值共生“:物联网软件产品如何做到“叫好又叫座“
java·物联网·struts
CS创新实验室13 小时前
CS实验室行业报告:AI算法工程师就业分析报告
人工智能·算法
XiYang-DING14 小时前
【LeetCode】Hash | 136.只出现一次的数字
算法·leetcode·哈希算法
wayz1114 小时前
Day 3:逻辑回归与分类预测
算法·分类·逻辑回归
tankeven14 小时前
HJ176 【模板】滑动窗口
c++·算法
云霄IT14 小时前
安卓开发之java转dex再转smali
android·java·python