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);
    }
}
相关推荐
洛水水13 小时前
【力扣100题】58.轮转数组
算法·leetcode
资深流水灯工程师13 小时前
LMS 最小均方算法在 DSP 上的 C 语言实现
算法
风筝在晴天搁浅13 小时前
阿里 LeetCode 876.链表的中间节点
算法·leetcode·链表
RainCity13 小时前
Java Swing 自定义组件库分享(九)
java·笔记·后端
玖釉-13 小时前
二叉树展开为链表:从先序遍历到原地指针重排
c++·windows·算法·leetcode·链表
05候补工程师13 小时前
【408考研·数据结构专题】二叉树、树与森林、线索树及哈夫曼树核心考点与秒杀技巧深度总结
数据结构·经验分享·笔记·考研·算法
吃好睡好便好13 小时前
矩阵的加减运算
开发语言·人工智能·学习·线性代数·算法·matlab·矩阵
NE_STOP13 小时前
Docker--容器常用命令
java
吃好睡好便好13 小时前
提取矩阵特定多行元素
开发语言·线性代数·算法·matlab·矩阵
摇滚侠13 小时前
MSYS2 Builds Hashes Cygwin Builds Hashes 区别
java