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;
    }
}
相关推荐
没有羊的王K12 分钟前
SSM框架学习DI入门——day2
java·spring boot·学习
公子绝12 分钟前
JAVA学习笔记 使用notepad++开发JAVA-003
java·学习·notepad++·java开发环境
似璟如你20 分钟前
Java开发八股文之基础篇+spring+集合
java·开发语言·面试
本杰明15222 分钟前
2025/7/14——java学习总结
java·开发语言·学习
星释33 分钟前
优雅的Java:01.数据更新如何更优雅
java·开发语言·spring boot
LeonYangRyeon35 分钟前
解锁SQL“密码”:SELECT DISTINCT END AS的深度剖析与实战指南
java·开发语言
7 9743 分钟前
C语言基础知识--文件的顺序读写与随机读写
java·数据结构·算法
梁同学与Android3 小时前
Android ---【内存优化】常见的内存泄露以及解决方案
android·java·内存泄漏
武子康4 小时前
Java-71 深入浅出 RPC Dubbo 上手 父工程配置编写 附详细POM与代码
java·分布式·程序人生·spring·微服务·rpc·dubbo
艾莉丝努力练剑5 小时前
【LeetCode&数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解
c语言·开发语言·数据结构·学习·算法·leetcode·链表