当前位置: 首页 > news >正文

【LeetCode】【算法】538. 把二叉搜索树转换为累加树

LeetCode 538. 把二叉搜索树转换为累加树

题目

给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。
提醒一下,二叉搜索树满足下列约束条件:
节点的左子树仅包含键 小于 节点键的节点。
节点的右子树仅包含键 大于 节点键的节点。
左右子树也必须是二叉搜索树。

思路

dfs
题目有点懵,看了题解大概意思就是右中左做个求和,那就比较容易了,直接不断向右递归,然后逐层向上求和就可以

代码

/*** 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 s = 0;public TreeNode convertBST(TreeNode root) {dfs(root);return root;}private void dfs(TreeNode node) {if (node == null) {return;}dfs(node.right);s += node.val;node.val = s;dfs(node.left);}
}
http://www.lryc.cn/news/484024.html

相关文章:

  • YoloV8改进策略:注意力改进|EPSANet,卷积神经网络上的高效金字塔挤压注意力块|即插即用|代码+改进方法
  • Nextflow最佳实践:如何在云上高效处理大规模数据集
  • 数据结构:顺序表(动态顺序表)
  • springboot040社区医院信息平台
  • windows下QT5.12.11使用MSVC编译器编译mysql驱动并使用详解
  • c++写一个死锁并且自己解锁
  • JavaScript方法修改 input type=file 样式
  • 群控系统服务端开发模式-应用开发-前端个人信息功能
  • 【jupyter】文件路径的更改
  • Ruby编程语言全景解析:从基础到进阶
  • Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)
  • 解决vscode不能像pycharm一样从其他同级文件夹导包
  • DAY24|回溯算法Part03|LeetCode:93.复原IP地址、78.子集、90.子集II
  • 接口自动化测试做到什么程度的覆盖算是合格的
  • Kubernetes-ArgoCD篇-01-简介
  • 阿里云通义大模型团队开源Qwen2.5-Coder:AI编程新纪元
  • 【大数据学习 | HBASE高级】hbase的参数优化
  • 两个链表求并集、交集、差集
  • C++中的栈(Stack)和堆(Heap)
  • Linux系统编程学习 NO.11——进程的概念(2)
  • QT自定义控件封装
  • 【搜索结构】AVL树的学习与实现
  • LeetCode40:组合总和II
  • 基于Python+Vue开发的旅游景区管理系统
  • 嵌入式硬件杂谈(一)-推挽 开漏 高阻态 上拉电阻
  • 在arm64架构下, Ubuntu 18.04.5 LTS 用命令安装和卸载qt4、qt5
  • k8s笔记——核心概念
  • 大数据新视界 -- 大数据大厂之 Impala 性能飞跃:动态分区调整的策略与方法(上)(21 / 30)
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-并行调用多个tools(五)
  • 蓝桥杯每日真题 - 第8天