【LeetCode:1038. 从二叉搜索树到更大和树 | BST+DFS+中序遍历】

news2024/11/26 5:56:49

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 滑动窗口
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 1038. 从二叉搜索树到更大和树

⛲ 题目描述

给定一个二叉搜索树 root (BST),请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。

提醒一下, 二叉搜索树 满足下列约束条件:

节点的左子树仅包含键 小于 节点键的节点。
节点的右子树仅包含键 大于 节点键的节点。
左右子树也必须是二叉搜索树。

示例 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]

提示:

树中的节点数在 [1, 100] 范围内。
0 <= Node.val <= 100
树中的所有值均 不重复 。

注意:该题目与 538: https://leetcode-cn.com/problems/convert-bst-to-greater-tree/ 相同

🌟 求解思路&实现代码&运行结果


⚡ 滑动窗口

🥦 求解思路
  1. 按照右子树->根节点->左子树的顺序,递归遍历二叉搜索树,累加遍历过所有节点的val,然后每次赋值给对应的当前的root节点。
  2. 实现代码如下所示:
🥦 实现代码
/**
 * 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 bstToGst(TreeNode root) {
        if(root==null) return null;
        process(root);
        return root;
    }

    public void process(TreeNode root){
        if(root==null) return;
        process(root.right);
        sum+=root.val;
        root.val=sum;
        process(root.left);
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

我也不想说啊,可这东西行政用能保命啊!

行政人姐妹在哪里啊&#xff01;在处理工作报告&#xff0c;行政报告等文章的时候&#xff0c;毫无头绪&#xff0c;速度还慢&#xff0c;容易被领导批评。 最近挖到了个抄好用的AI智能写作工具 用它写报告&#xff0c;写总结、写会议记录&#xff0c;写方案等等......写啥都…

软件开发、管理、运维、实施、验收、交付、安全检查等文档支撑

软件开发涉及到哪些文档&#xff1a; 全文档获取&#xff1a;点我获取 可行性分析报告&#xff1a;在项目开始前&#xff0c;需要编写可行性分析报告&#xff0c;评估项目的可行性、技术需求、成本预算等因素&#xff0c;为决策提供依据。项目开发计划&#xff1a;明确项目的…

Java毕业设计—vue+SpringBoot人事管理OA系统前后端分离

项目介绍 项目背景 人力资源管理是企业运营中必不可少的一环&#xff0c;它关系到企业的前途与发展。尤其对于中小微企业来说&#xff0c;对企业的发展有着举足轻重的作用。随着近年来&#xff0c;政府对创业项目的大力扶持&#xff0c;我国创业型企业蓬勃发展。据统计&#…

由于找不到xinput1_3.dll,无法继续执行代码的多种解决方法指南,xinput1_3.dll文件修复

当玩家或用户在启动某些游戏和应用程序时&#xff0c;可能会遭遇到一个系统错误提示&#xff1a;“由于找不到xinput1_3.dll,无法继续执行代码l”。这种情况通常指出系统中DirectX组件存在问题。以下我们将介绍几种常用的解决方法&#xff0c;并提供详细的操作步骤。 一.找不到…

【webpack】初始化

webpack 旧项目的问题下一代构建工具 Vite 主角 &#xff1a;webpack安装webpack1&#xff0c;mode的选项2&#xff0c;使用source map 精准定位错误行数3&#xff0c;使用watch mode(观察模式)&#xff0c;自动运行4&#xff0c;使用webpack-dev-server工具&#xff0c;自动刷…

03_阿里云_配置OSS环境变量

关于aliyunOSS文件上传的系统变量配置 问题引出 在黑马程序员2023新版JavaWeb开发教程教程中&#xff0c;P148Day11-04. 案例-文件上传-阿里云OSS-准备到P150Day11-06. 案例-文件上传-阿里云OSS-集成阿里云给的参考代码已经更新了&#xff0c;需要配置阿里云的用户变量&#…

JavaScript实战:制作一个待办事项列表应用

JavaScript实战&#xff1a;制作一个待办事项列表应用 引言 在本教程中&#xff0c;我们将一步步创建一个简单的待办事项列表应用&#xff0c;这不仅会帮助你学习基本的JavaScript编程概念&#xff0c;还会教会你如何处理事件以及操作DOM。这个项目是面向初学者的&#xff0c…

NFTScan Labs:我们为什么要推出 L2 网络 Mint Blockchain?

发展背景 NFT&#xff08;非同质化代币&#xff09;是一种储存在区块链上的加密数据单位&#xff0c;它可以代表身份、合同、权益、声誉、社交关系等独一无二的数字资产。与比特币等加密货币不同&#xff0c;NFT 资产不可互换&#xff0c;每一枚 NFT 都是独一无二的链上资产。N…

力扣题:字符的统计-12.6

力扣题-12.6 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;696. 计数二进制子串 解题思想&#xff1a;先统计连续的0和连续的1的个数&#xff0c;然后进行相加即可&#xff08;想不到一点&#xff09; class Solution(object):def countBinaryS…

怎么用电源芯片测试系统测试电源管理芯片的性能?

电源芯片用于电源转换和管理&#xff0c;其性能直接影响着电源管理芯片的工作效率和可靠性&#xff0c;影响电子设备的质量和性能。因此&#xff0c;性能测试是电源芯片测试的重要步骤&#xff0c;用电源芯片测试系统测试其性能&#xff0c;可以确保测试数据及测试结果的准确性…

m1编译xgboost的jar报错

1、编译 cd jvm-package包&#xff0c;然后进行编译mvn install -P libxgboost,java -DskipTests 2、报错信息&#xff1a; 3、解决方法 A、在jvm-packages包下找到xgboost4j中找到pom.xml&#xff0c;如图&#xff1a; B、修改python的额目录或者脚本&#xff1a; C、继续执…

普华永道:国有企业要动态布局和管理供应商资源池

近日&#xff0c;普华永道发布《动态布局和管理供应商资源池&#xff0c;助力国企数字化供应链建设》研究文章中建议&#xff1a;国有企业需要将采购寻源作为供应链管理的起始点&#xff0c;管理供应商资源池&#xff0c;实施供应链数字化转型的发展战略&#xff0c;不仅能解决…

数据分析基础之《matplotlib(4)—柱状图》

一、柱状图绘制 1、柱状图要素 有类别 2、需求&#xff1a;对比每部电影的票房收入 电影数据如下图所示&#xff1a; 3、matplotlib.pyplot.bar(x, height, width0.8, bottomNone, *, aligncenter, dataNone, **kwargs) 说明&#xff1a; x&#xff1a;有几个类别 height&am…

电压放大器可用于什么电路

电压放大器是一种常见的电子器件&#xff0c;其主要功能是放大输入信号的电压幅度。它可以用于多种电路中&#xff0c;下面西安安泰将详细介绍几个典型的应用场景。 首先&#xff0c;电压放大器可以用于音频放大器电路。音频放大器广泛应用于音响设备、电视机、电脑音箱等&…

PDF编辑器免费版有哪些?哪个好用?

日常工作和学习中,普通的PDF的阅读器通常无法进行编辑,更别说逆向导出成为Word、PPT或者Excel了。而且。市场上很多PDF编辑器还要收费。那么问题来了,PDF编辑器免费版有哪些呢?这就给大家安利几款,强烈建议收藏! PDF编辑器免费版一:PDF24 这款编辑器的功能有主要有PDF的合并、…

[MySQL] MySQL中的内置函数

本篇文章主要是对MySQL中常见的内置函数进行了详细解释。例如有日期类函数、字符串类函数、数学类函数等等。希望本篇文章会对你有所帮助。 文章目录 一、日期类函数 1、1 使用详解 1、2 实例演示 二、字符串函数 2、1 使用详解 2、2 实例演示 三、数学函数 四、其他函数 &…

C语言二叉树的基本概念(一)

目录 二叉树 二叉树的分类&#xff08;目前只谈两种&#xff09; 满二叉树 完全二叉树 二叉树的性质&#xff08;其余的可以自己总结&#xff09; 选择练习 二叉树的存储结构 顺序存储方式 链式存储方式 二叉树 定义&#xff1a;二叉树是一种特殊的树状数据结构&…

为什么伦敦银交易中支撑和阻力位这么重要?

在伦敦银交易中&#xff0c;支撑阻力位是我们做伦敦银技术分析不可缺少的一部分。到底为什么支撑阻力位这么重要呢&#xff1f;下面我们就来讨论一下。 什么才是主要的支撑阻力位&#xff1f;通常来说&#xff0c;前期的高点和低点是主要的支撑阻力位所在的位置。为什么这些位置…

C - 语言->内存函数

目录 系列文章目录 前言 1. memcpy使⽤和模拟实现 1.2 memcpy函数的模拟实现: 2. memmove 使⽤和模拟实现 2.1memmove的模拟实现&#xff1a; 3. memset 函数的使⽤ 4. memcmp 函数的使⽤ 系列文章目录 ✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff…

如何让软文更具画面感,媒介盒子分享

写软文这种带有销售性质的文案时&#xff0c;总说要有画面感&#xff0c;要有想象空间。只有针对目标用户的感受的设计&#xff0c;要了解用户想的是什么&#xff0c;要用可视化的描述来影响用户的感受&#xff0c;今天媒介盒子就和大家分享&#xff1a;如何让软文更具画面感。…