树_二叉搜索树累加求和

在这里插入图片描述

//给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于
// node.val 的值之和。 
//
// 提醒一下,二叉搜索树满足下列约束条件: 
//
// 
// 节点的左子树仅包含键 小于 节点键的节点。 
// 节点的右子树仅包含键 大于 节点键的节点。 
// 左右子树也必须是二叉搜索树。 
// 
//
// 注意:本题和 1038: https://leetcode-cn.com/problems/binary-search-tree-to-greater-
//sum-tree/ 相同 
//
// 
//
// 示例 1: 
//
// 
//
// 输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
//输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]
// 
//
// 示例 2: 
//
// 输入:root = [0,null,1]
//输出:[1,null,1]
// 
//
// 示例 3: 
//
// 输入:root = [1,0,2]
//输出:[3,3,2]
// 
//
// 示例 4: 
//
// 输入:root = [3,2,4,1]
//输出:[7,9,4,10]
// 
//
// 
//
// 提示: 
//
// 
// 树中的节点数介于 0 和 10⁴ 之间。 
// 每个节点的值介于 -10⁴ 和 10⁴ 之间。 
// 树中的所有值 互不相同 。 
// 给定的树为二叉搜索树。 
// 
//
// Related Topics 树 深度优先搜索 二叉搜索树 二叉树 👍 965 👎 0//leetcode submit region begin(Prohibit modification and deletion)/*** 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 {/*** 记录每次累加的值*/int sum = 0;public TreeNode convertBST(TreeNode root) {executeAdd(root);return root;}private void executeAdd(TreeNode cur) {if (cur == null) {return;}executeAdd(cur.right);sum += cur.val;//累加后覆盖原本值cur.val = sum;executeAdd(cur.left);}
}
//leetcode submit region end(Prohibit modification and deletion)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vulnhub 靶场】【hacksudo: FOG】【简单 - 中等】【20210514】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/hacksudo-fog,697/ 靶场下载:https://download.vulnhub.com/hacksudo/hacksudo-FOG.zip 靶场难度:简单 - 中等 发布日期:2021年05月14日 文件大小:1.3 GB 靶场作…

解决 vite 中 import.meta.globEager is not function 的问题

本人正在重构两年前搭建到一半的博客网站,相关依赖都很陈旧,用到了 npm-check-updates 检测项目可升级依赖: 升级完成后解决完依赖发现控制台报错 import.meta.globEager is not function解决方案: vite版本降至4.3.0 亲测有效&…

忽略python运行出现的大量警告

添加以下代码即可 import warnings warnings.filterwarnings(ignore)

1107. 魔板(BFS,最小步数模型,unordered_map哈希)

1107. 魔板 - AcWing题库 Rubik 先生在发明了风靡全球的魔方之后,又发明了它的二维版本——魔板。 这是一张有 8 个大小相同的格子的魔板: 1 2 3 4 8 7 6 5我们知道魔板的每一个方格都有一种颜色。 这 8 种颜色用前 8 个正整数来表示。 可以用颜色的…

C语言面试之旅:掌握基础,探索深度(面试实战之ARM架构二)

读别人的代码,就像撕洋葱,每读一层,哭一遍。 引言 ARM 处理器是冯诺依曼存储结构,程序空间、RAM 空间及IO 映射空间统一编址,除对对RAM 操作以外,对外围IO、程序数据的访问均要通过加载/存储指令进…

介绍 Agency: 使AI与Go语言无缝对接

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力! 在当今应用开发领域,类似OpenAI API等生成式AI技术的蓬勃发展正在彻底改变着应用开发的格局。Python和JavaScript等语…

App内存优化

一、内存优化介绍 1.背景介绍 内存是大问题但缺乏关注压实骆驼的最后一个稻草(堆栈溢出) 2.内存问题 内存抖动:锯齿状、GC导致卡顿内存泄露:可用内存减少、频繁GC内存溢出:OOM,程序异常 二、优化工具选…

小程序的分包加载具体流程

在小程序项目的 app.json 文件中配置分包信息。通过设置 subpackages 字段,指定每个分包的根目录路径和分包的名称。 "subpackages": [{"root": "subpackage1","name": "subpackage1"},{"root": &quo…

FreeRTOS简介

FreeRTOS简介 文章目录 FreeRTOS简介前言一、什么是FreeRTOS?二、FreeRTOS的特点三、FreeRTOS的版本和参考资料1、FreeRTOS版本2、FreeRTOS源码获取3、FreeRTOS参考资料 四、FreeRTOS源码简介 前言 FreeRTOS是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务…

Photoshop最新版PS2024安装使用 Ver25.0.0

Photoshop,这个是长红了几十年的软件,我大概从它的3.0版本开始用,目前已迭代到25.0,但一直还在用CS4/11.0版本,一直秉持着够用即可的原则,因为不是专业的平面设计人员,能够简单PP图片就行。&…

C++智能指针及简单实现

C智能指针 堆内存、栈内存与静态内存静态内存栈内存堆内存 动态内存管理new、delete运算符智能指针实现智能指针 shared_ptr智能指针的线程安全问题解决 unique_ptrweak_ptr循环引用 思维导图本模块思路 动态内存管理 - cppreference.com 堆内存、栈内存与静态内存 静态内存 …

视觉测量基础

1. 相机模型 1.1 坐标系转换原理 世界坐标系(world Coords):点在真实世界中的位置,描述相机位置。 相机坐标系(Cameras Coords):以相机光学系统中心(镜头中心)为原点,建立相机坐标系。 图像物理坐标系(Film Coords):经过小孔成…

21 俄罗斯套娃信封问题

问题描述,给你一个二维数组envelopes,其中envelopes[i][wi,hi].表示第i个信封的宽度和高度,当另一个信封的宽度和噶度都比这个信封大的时候就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一套“俄罗…

Debugging Application Engine Programs 调试应用程序引擎程序

Debugging Application Engine Programs 调试应用程序引擎程序 This section discusses how to: 本节讨论如何: Enable the Application Engine debugger.启用应用程序引擎调试器。Set debugging options.设置调试选项。 Enabling the Application Engine Debu…

Java数组面试题

Java数组面试题 1. 创建一个包含多个元素的数组,并打印输出数组的内容。 public class Main {public static void main(String[] args) {String[] array {"apple", "banana", "orange"};for (String element : array) {System.out…

微服务实战系列之J2Cache

前言 经过近几天陆续发布Cache系列博文,博主已对业界主流的缓存工具进行了基本介绍,当然也提到了一些基本技巧。相信各位盆友看见这么多Cache工具后,在选型上一定存在某些偏爱: A同学说:不管业务千变万化,我对Redis的…

【华为OD题库-070】数列描述-java

题目 题目描述: 有一个数列A[n],从A[0]开始每一项都是一个数字,数列中A[n1]都是A[n]的描述,其中A[0]1,规则如下; A[0]:1 A[1]:11 含义其中A[0]1是1个1即11,表示A[0]从左到右连续出现了1次1 A[2]:21 含义其中A[1]11是2个…

企业如何制定精准营销策略?

在当今的数字化时代,位置数据已经成为企业营销策略中不可或缺的一部分。通过收集和分析客户的位置数据,企业可以更好地了解客户的行为和需求,制定更精准的营销策略,从而提高营销效率。 首先,利用IP地址位置数据可以帮助…

手搓图片滑动验证码_JavaScript进阶

手搓图片滑动验证码 背景代码效果图展示网站 背景 在做前端项目开发的时候,少不了登录注册部分,既然有登录注册就少不了机器人验证,验证的方法有很多种,比如短信验证码、邮箱验证码、图片滑动、图片验证码等。 由于鄙人在开发中…

9个Logo素材超多的Logo网站!

Logo 虽然看起来很简单,但是设计过程中的每一个细节都很精致。因为 Logo 作为品牌的象征,应该一目了然地传达给人们品牌的理念和形象。本文给大家整理了 7 个 Logo 素材网站和 2 个 Logo 在线制作网站。可以收集很多关 Logo 设计的内容和技巧&#xff01…