leetcode--从二叉搜索树到更大和树(java)

news/2024/11/17 10:24:25/

从二叉搜索树到更大和树

  • leetcode -1038 题 从二叉搜索树到更大和树
  • 解题思路
  • 代码演示
  • 二叉树专题

leetcode -1038 题 从二叉搜索树到更大和树

原题链接:
https://leetcode.cn/problems/binary-search-tree-to-greater-sum-tree/

题目描述
给定一个二叉搜索树 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
树中的所有值均 不重复

解题思路

搜索二叉树的特性,左子树小于头节点,头节点小于右子树
左 < 头 < 右。
中序遍历顺序是: 左 头 右,
因此中序遍历是有序的,
但题中要求的是,大于节点值的累加和,
如果从左子树遍历,到左子树时,我们无法去累加后序节点的值
因此我们需要对中序遍历进行逆序
先遍历右子树,
然后依次向左遍历,左边都小于右边,就可以累加了

代码演示

/*** 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;}in(root);return root;}/*** 中序遍历的逆序  右 头 左 */public void in(TreeNode root){if(root == null){return;}//先遍历右树in(root.right);//中序累加和赋值给节点sum += root.val;root.val = sum;//再遍历左树in(root.left);}
}

二叉树专题

根据前序和后序遍历构造二叉树

最大二叉树

从中序与后序遍历序列构造二叉树

二叉树的序列化和反序列化

leetcode 二叉树展开为链表


http://www.ppmy.cn/news/146704.html

相关文章

计算机中丢失vcomp140.dll解决方案,可以使用这个3种方法修复

vcomp140.dll是一个动态连接库文件&#xff0c;它是Microsoft Visual Studio 2015应用程序所必需的运行库文件之一。它在Visual C Redistributable for Visual Studio 2015包中提供&#xff0c;是用于支持Microsoft C/C OpenMP Runtime的库文件。计算机中丢失vcomp140.dll无法打…

无线键鼠接收器配对怎么就那么难?简直就是浪费

手头无线键鼠套装、无线鼠标等设备比较多&#xff0c;基本每台笔记本都有一套。品牌主要以雷柏和罗技为主&#xff0c;罗技主要是鼠标&#xff0c;此文不涉及。 有一套雷柏的无线键鼠套装&#xff0c;因为使用多年&#xff0c;鼠标失灵已经扔了&#xff0c;仅剩一个键盘。键盘…

一套键鼠同时控制三台电脑?罗技无线键鼠为办公效率加速

每日忙于繁忙的工作之中&#xff0c;键盘与鼠标作为办公中必不可或缺的外设产品&#xff0c;其体验直接决定了办公时的舒适度&#xff0c;如果将办公比作战场&#xff0c;那么键盘与鼠标就相当于手中的武器&#xff0c;由此可见其重要性。目前市面上属于办公类的键鼠套装不在少…

口袋键鼠v0.8c 利用PPC实现无线鼠标键盘功能

最近家里买了一台大屏幕电视&#xff0c;以前经常在本本上看电影&#xff0c;也改为将电脑视频输出到电视来看&#xff0c;屏幕大了之后效果还是不错的。 有一点比较麻烦的就是换片子&#xff0c;电视有遥控可是电脑没有&#xff0c;每次要跑到电脑前面操作。 有想过给本本配…

一个驱动级别的 键盘鼠标模拟工具

http://www.ddxoft.com/ 简介&#xff1a; 最多用户选择&#xff0c;最简单易用&#xff0c;最稳定可靠 永久免费 系统底层集成&#xff0c;真正的驱动级硬件模拟 一键安装&#xff0c;即为电脑添加一对可完全编程控制的键盘鼠标&#xff0c;轻松自动化操作电脑 适用VB6,DELPH…

通用鼠标键盘

/* 该程序通过并行机制处理鼠标和键盘的消息,为了简化程序裁减了一些代码,该程序可用为基础在该程序上添加代码可用于文本编辑,游戏和其他鼠标键盘通用的程序. */ #include <graphics.h> #include <stdio.h> #include <conio.h> #include <dos.h> #i…

解决雷柏无线键鼠突然失效的问题

今天把电脑休眠掉&#xff0c;唤醒来之后雷柏的无线键鼠套装突不能使用。换电池&#xff0c;重装系统均无效。找到淘宝卖家&#xff0c;卖家说可能是丢失程序码&#xff0c;给我发过来一个雷柏的键鼠对码程序&#xff08;下载地址在后面&#xff09;&#xff0c;安装&#xff0…

手机无线遥控器,让手机变成无线鼠标+无线键盘!

很久在blog上写东西了&#xff0c;自从在手机上折腾一个Hello World程序之后&#xff0c;我紧接着就开始折腾这个手机通过蓝牙遥控电脑的玩艺。其实在购买N-Gage之前我就已经有这样的想法&#xff0c;因为我电脑上装的电视卡遥控器没用多久坏了&#xff0c;我就想能不能用手机蓝…