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;
    }
}
相关推荐
狂奔小菜鸡几秒前
Day35 | Java多线程入门
java·后端·java ee
『六哥』1 分钟前
IntelliJ IDEA 安装教程
java·ide·intellij-idea·intellij idea
艾迪的技术之路1 分钟前
【实践】2025年线上问题解决与总结-1
java
Q741_1476 分钟前
C++ 栈 模拟 力扣 394. 字符串解码 每日一题 题解
c++·算法·leetcode·模拟·
华仔啊11 分钟前
ArrayList 和 LinkedList 的区别?一篇讲透,从此开发和面试都不再纠结
java·后端
趁月色小酌***23 分钟前
JAVA 知识点总结5
java·开发语言·python
冰冰菜的扣jio27 分钟前
InnoDB对于MVCC的实现
java·数据库·sql
Macbethad27 分钟前
SpringMVC RESTful API开发技术报告
java·spring boot·后端
05大叔27 分钟前
SpringMVCDay01
java·开发语言
AC赳赳老秦28 分钟前
农业智能化:DeepSeek赋能土壤与气象数据分析,精准预测病虫害,守护丰收希望
java·前端·mongodb·elasticsearch·html·memcache·deepseek