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;
    }
}
相关推荐
墨雨晨曦885 分钟前
2026/01/20 java总结
java·开发语言
汤姆yu10 分钟前
基于springboot的直播管理系统
java·spring boot·后端
52Hz11813 分钟前
二叉树理论、力扣94.二叉树的中序遍历、104.二叉树的最大深度、226.反转二叉树、101.对称二叉树
python·算法·leetcode
a努力。15 分钟前
虾皮Java面试被问:分布式Top K问题的解决方案
java·后端·云原生·面试·rpc·架构
黎雁·泠崖20 分钟前
Java字符串入门:API入门+String类核心
java·开发语言·python
普贤莲花26 分钟前
新生2026年1月20日---星期二(大寒)
程序人生·算法·leetcode
leikooo32 分钟前
Spring AI 工具调用回调与流式前端展示的完整落地方案
java·spring·ai·ai编程
vx1_Biye_Design37 分钟前
基于web的物流管理系统的设计与实现-计算机毕业设计源码44333
java·前端·spring boot·spring·eclipse·tomcat·maven
MediaTea40 分钟前
Python:MRO 解密 —— C3 线性化算法
java·开发语言
tqs_123451 小时前
倒排索引数据结构
java·前端·算法