Java | Leetcode Java题解之第538题把二叉搜索树转换为累加树

题目:

题解:

java 复制代码
class Solution {
    public TreeNode convertBST(TreeNode root) {
        int sum = 0;
        TreeNode node = root;

        while (node != null) {
            if (node.right == null) {
                sum += node.val;
                node.val = sum;
                node = node.left;
            } else {
                TreeNode succ = getSuccessor(node);
                if (succ.left == null) {
                    succ.left = node;
                    node = node.right;
                } else {
                    succ.left = null;
                    sum += node.val;
                    node.val = sum;
                    node = node.left;
                }
            }
        }

        return root;
    }

    public TreeNode getSuccessor(TreeNode node) {
        TreeNode succ = node.right;
        while (succ.left != null && succ.left != node) {
            succ = succ.left;
        }
        return succ;
    }
}
相关推荐
小宋102110 分钟前
实现Excel文件和其他文件导出为压缩包,并导入
java·javascript·excel·etl
guihong00414 分钟前
JAVA面试题、八股文学习之JVM篇
java·jvm·学习
QQ_11543203116 分钟前
基于Java+SpringBoot+Mysql在线简单拍卖竞价拍卖竞拍系统功能设计与实现九
java·spring boot·mysql·毕业设计·毕业源码·竞拍系统·竞拍项目
醉颜凉18 分钟前
计算(a+b)/c的值
java·c语言·数据结构·c++·算法
周杰伦fans20 分钟前
Java与C#
java·开发语言·c#
A_Tai233333341 分钟前
MyBatis高级扩展
java·开发语言·mybatis
mubeibeinv42 分钟前
分页/列表分页
java·前端·javascript
夏子曦1 小时前
java虚拟机——频繁发生Full GC的原因有哪些?如何避免发生Full GC
java·开发语言
gogo_hua1 小时前
JVM系列之OOM观测准备
java·大数据·jvm
m0_675447081 小时前
Solon 拉取 maven 包很慢或拉不了,怎么办?
java·maven