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;
    }
}
相关推荐
小笨猪-4 分钟前
RabbitMQ高级特性
java·开发语言·redis·rabbitmq
欧阳方超6 分钟前
Spring Boot2.x教程:(十)从Field injection is not recommended谈谈依赖注入
java·spring boot·后端
孤客网络科技工作室11 分钟前
虚幻引擎5(UE5)学习教程
java·学习·ue5
神仙别闹19 分钟前
基于 Java 语言双代号网络图自动绘制系统
java·开发语言
猫爪笔记27 分钟前
JAVA基础:单元测试;注解;枚举;网络编程 (学习笔记)
java·开发语言·单元测试
passer__jw76727 分钟前
【LeetCode】【算法】739. 每日温度
算法·leetcode
会写代码的饭桶29 分钟前
【C++刷题】力扣-#566-重塑矩阵
c++·leetcode·矩阵
aqua353574235831 分钟前
杨辉三角——c语言
java·c语言·数据结构·算法·蓝桥杯
API快乐传递者31 分钟前
用 Python 爬取淘宝商品价格信息时需要注意什么?
java·开发语言·爬虫·python·json
yang_shengy41 分钟前
【JavaEE】认识进程
java·开发语言·java-ee·进程