代码随想录——把二叉搜索树转换为累加树(Leetcode538)

题目链接
在这里插入图片描述

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    private int sum = 0; // 用于累加所有节点的值

    public TreeNode convertBST(TreeNode root) {
        traverse(root);
        return root;
    }

    private void traverse(TreeNode root) {
        if (root == null) {
            return;
        }
        
        // 首先遍历右子树
        traverse(root.right);
        
        // 访问节点本身,并更新sum
        sum += root.val;
        root.val = sum;
        
        // 最后遍历左子树
        traverse(root.left);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/698150.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mac怎么录制屏幕?这2个方法你值得拥有

在数字化时代,屏幕录制已经成为一种常见且重要的工具,无论是教学演示、游戏直播还是会议记录,屏幕录制都发挥着不可或缺的作用。对于Mac用户而言,如何高效、便捷地进行屏幕录制,是一个值得探讨的话题,可是很…

halcon算子register_object_model_3d_pair详解

搜索两个3D对象模型的之间的最优变换 搜索两个3D对象模型之间的转换。 register_object_model_3d_pair搜索具有最佳对齐的两个3D对象模型之间的转换。这个过程称为注册。Pose中返回的转换可用于将ObjectModel3D1转换为第二个对象ObjectModel3D2的参考框架。Score返回两个3D对象…

解密Prompt系列31. LLM Agent之从经验中不断学习的智能体

前言 Agent智能体的工作流可以简单分成两种:一种是固定的静态工作流,一种是智能体自主决策的动态工作流。 静态流程的Agent举几个例子,例如新闻热点追踪推送Agent,每日新论文摘要总结Agent,它们的优点是可控&#xf…

【智算101】为什么用好大模型,离不开“向量数据库“呢

关注【云原生AI百宝箱】公众号,获取更多云原生AI消息 大模型离不开向量数据库回答这个问题之前,我们先来理解一下什么是向量。 这是一个苹果,但在发明苹果这个词之前,人们怎么描述它呢? 颜色、大小、形状、纹理&#x…

海水那么咸,海鲜那么甜,我们那么馋

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / (新)声湃轩北京录音间 海鲜是大海给予人类的宝贵礼物,腥气又甜美,细腻又霸气…

认识和使用 Vite 环境变量配置,优化定制化开发体验

Vite 官方中文文档:https://cn.vitejs.dev/ 环境变量 Vite 内置的环境变量如下: {"MODE": "development", // 应用的运行环境"BASE_URL": "/", // 部署应用时使用的 URL 前缀"PROD": false, //应用…

APP需要做等保吗?

在数字化时代,APP已成为我们生活中不可或缺的一部分,它们如同无形的桥梁,连接着现实世界与虚拟世界,为我们提供了前所未有的便利。然而,随着APP的普及,其背后潜藏的安全风险也日益凸显。近年来,…

stm32MP135裸机编程:启动流程分析

0 参考资料 轻松使用STM32MP13x - 如MCU般在cortex A核上裸跑应用程序.pdf STM32MP135AD数据手册.pdf1 stm32MP135裸机启动流程分析 1.1 启动方式 stm32MP135支持8种启动方式: 注: UART和USB启动并不是指通过UART/USB加载程序,而是通过UA…

前端已学习内容

一、HTMLCSS 1、黑马B站视频-27小时 地址:基础班导学-精讲与实战_哔哩哔哩_bilibili 说明:讲义已下载。两个小项目还没学没练。 2、菜鸟教程 地址:HTML 简介 | 菜鸟教程 二、JavaScript 1、菜鸟教程 网址:JavaScript 教程 …

状态管理Vuex

官网:Vuex 是什么? | Vuex (vuejs.org)https://v3.vuex.vuejs.org/zh/ 创建一个vue2的新项目名为vuex-demo,安装命令 npm install vuex3 新建index.js import Vue from vue import Vuex from vuexVue.use(Vuex)const store new Vuex.Store(…

PYQT + flask httpserver 服务器提供简单的MES服务

main.py import sys # 导入创建的文件模块 import test import dcservice from PyQt5.QtWidgets import QApplication, QMainWindowif __name__ __main__:app QApplication(sys.argv)MainWindow QMainWindow()ui test.Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.sho…

vue中插槽的本质

定义slotCompoent.vue 组件 <template><slot></slot><slot nameslot1></slot><slot name"slot2" msg"hello"></slot> </template>使用组件&#xff1a; <slotComponent><p>默认的</p>…

用Python代码锁定Excel单元格以及行和列

Excel能够帮助用户高效地组织数据&#xff0c;还支持复杂的公式计算和数据分析。而随着团队协作的日益频繁&#xff0c;保护数据的准确性和完整性变得尤为重要。在Excel表格中&#xff0c;我们可以通过锁定特定的单元格或区域&#xff0c;防止对单元格内容进行随意修改&#xf…

Golang:使用时会遇到的错误及解决方法详解

Go语言使用时常常会遇到的一些错误及解决方法&#xff0c;文中的示例代码讲解详细&#xff0c;感兴趣的小伙伴可以了解一下 1、go: go.mod file not found in current directory or any parent directory go mod init name 2、Failed to build the application: main.go:4:2:…

Java网络通信实现

UDP UDPServer import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket;public class UDPServer {public static void main(String[] args) throws IOException {System.out.println("UdpServer启动");// 创建upd套接字Data…

Java进阶_接口

接口的概念 在JAVA编程语言中是一个抽象类型&#xff0c;是抽象方法的集合&#xff0c;接口通常以interface来声明。一个类通过继承接口的方式&#xff0c;从而来继承接口的抽象方法。 接口并不是类&#xff0c;编写接口的方式和类很相似&#xff0c;但是它们属于不同的概念。类…

Bankless:为什么 AI 需要 Crypto 的技术?

原文标题&#xff1a;《Why AI Needs Crypto’s Values》 撰文&#xff1a;Arjun Chand&#xff0c;Bankless 编译&#xff1a;Chris&#xff0c;Techub News 原文来自香港Web3媒体&#xff1a;Techub News 人工智能革命的梦想一直是一把双刃剑。 释放人工智能的潜力可以解…

每日算法——归并排序

什么是归并排序 归并排序是一种分治算法。它将数组不断地分成两半&#xff0c;对每一半进行排序&#xff0c;然后再将排序好的两半合并起来。通过不断重复这个过程&#xff0c;最终得到完全排序的数组。 归并排序的注意点&#xff1a; 空间复杂度&#xff1a;归并排序需要额…

第1章Hello world 5/5:Rust/Java/C++实现Hello world代码优劣势对比:运行第一个程序

讲动人的故事,写懂人的代码 1.8 对比三种语言的Hello world代码特点和优劣势 艾极思又对比了三种语言的Hello world代码。 1.8.1 Rust的Hello world代码解读 让我们详细解释一下 Rust 这一个文件中的代码,并讨论为什么使用这些语法: 1.8.1.1 文件:main.rs fn main() …

(文章复现)低温环境下考虑电池寿命的微电网优化调度

参考文献&#xff1a; [1]丁佳昀,胡秦然,吴在军,等.低温环境下考虑电池寿命的微电网优化调度[J].中国电机工程学报,2024,44(10):3815-3824. 1.摘要 储能系统作为微电网重要组成部分&#xff0c;为微电网协调能量供需提供了解决方案。然而&#xff0c;在低温环境下&#xff0c…