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

【Leetcode】938. 二叉搜索树的范围和

文章目录

  • 题目
  • 思路
  • 代码
  • 结论

题目

题目链接
给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。

示例 1:
在这里插入图片描述
输入:root = [10,5,15,3,7,null,18], low = 7, high = 15
输出:32

示例 2:
在这里插入图片描述
输入:root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10
输出:23

提示:

  • 树中节点数目在范围 [1, 2 * 104] 内
  • 1 <= Node.val <= 105
  • 1 <= low <= high <= 105
  • 所有 Node.val 互不相同

思路

按深度优先搜索的顺序计算范围和。记当前子树根节点为 root,分以下四种情况讨论:

  1. 当根节点为空时,应直接返回0。
  2. 若根节点的值大于high,因为二叉搜索树右子树上的所有节点值均大于根节点的值,故只需考虑左子树的范围和。
  3. 若根节点的值小于low,因为二叉搜索树左子树上的所有节点值均小于根节点的值,故只需考虑右子树的范围和。
  4. 当根节点的值在[low, high]范围内时,应返回根节点的值、左子树的范围和、右子树的范围和的总和。

此时应返回 root 节点的值、左子树的范围和、右子树的范围和这三者之和。

代码

class Solution {
public:int rangeSumBST(TreeNode* root, int low, int high) {int ans=0;if(root==nullptr)return 0;if(root->val > high)return rangeSumBST(root->left,low,high);else if(root->val < low)return rangeSumBST(root->right,low,high);else return root->val + rangeSumBST(root->left, low, high) + rangeSumBST(root->right, low, high);}
};

结论

在这里插入图片描述

相关文章:

  • 【QT+QGIS跨平台编译】之五十五:【QGIS_CORE跨平台编译】—【qgsmeshcalcparser.cpp生成】
  • 【C#】SixLabors.ImageSharp和System.Drawing两者知多少
  • 刷题 16 前缀和
  • 常用网络协议的学习
  • 项目实战:Qt监测操作系统物理网卡通断v1.1.0(支持windows、linux、国产麒麟系统)
  • YOLOv9图像标注和格式转换
  • 通过配置数据库事件(Event)来实现定时导出 MySQL 数据库
  • XSS简介及xsslabs第一关
  • Linux 学习笔记(1-3)
  • 【Spring】回顾反射机制
  • 2324. 生活的艰辛(网络流,最小割,最大密度子图)#困难,重点难点
  • 软件License授权原理
  • 枚举(蓝桥练习)(反倍数、特别数的和、找到最多的数、小蓝的漆房、小蓝和小桥的挑战)
  • 用Python实现绘画樱花树
  • 08_第八章 微头条项目开发(PostMan测试工具)
  • CODING 缺陷管理功能正式开始公测
  • CSS实用技巧干货
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Yeoman_Bower_Grunt
  • yii2权限控制rbac之rule详细讲解
  • 搭建gitbook 和 访问权限认证
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 那些被忽略的 JavaScript 数组方法细节
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用common-codec进行md5加密
  • 通过几道题目学习二叉搜索树
  • 云大使推广中的常见热门问题
  • #WEB前端(HTML属性)
  • (02)Hive SQL编译成MapReduce任务的过程
  • (2)MFC+openGL单文档框架glFrame
  • (MATLAB)第五章-矩阵运算
  • (rabbitmq的高级特性)消息可靠性
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (WSI分类)WSI分类文献小综述 2024
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (汇总)os模块以及shutil模块对文件的操作
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)ABI是什么
  • (转)jQuery 基础
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net 生成二级域名
  • .NET 中的轻量级线程安全
  • /dev/sda2 is mounted; will not make a filesystem here!
  • ??myeclipse+tomcat
  • @Bean, @Component, @Configuration简析
  • @Import注解详解
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [2016.7 day.5] T2
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [CakePHP] 在Controller中使用Helper