【力扣每日一题】力扣938二叉搜索树的范围和

题目来源

力扣938二叉搜索树的范围和

题目概述

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

思路分析

递归遍历树,判断遇到的节点是否满足要求,满足则加入结果。

代码实现

java实现

java 复制代码
class Solution {
    int res = 0;
    public int rangeSumBST(TreeNode root, int low, int high) {
        if (root == null) {
            return 0;
        }
        if (root.val <= high && root.val >= low) {
            res += root.val;
        }
        if (root.val > low && root.left != null) {
            rangeSumBST(root.left, low, high);
        }
        if (root.val < high && root.right != null) {
            rangeSumBST(root.right, low, high);
        }
        return res;
    }
}

c++实现

cpp 复制代码
class Solution {
public:
    int res = 0;
    int rangeSumBST(TreeNode* root, int low, int high) {
        if (root == nullptr) {
            return 0;
        }
        if (root->val <= high && root->val >= low) {
            res += root->val;
        }
        if (root->val > low && root->left != nullptr) {
            rangeSumBST(root->left, low, high);
        }
        if (root->val < high && root->right != nullptr) {
            rangeSumBST(root->right, low, high);
        }
        return res;
    }
};
相关推荐
郭小李1 分钟前
mybatis的 Mapper.xml语法
xml·java·mybatis
小蒜学长4 分钟前
基于SpringBoot 框架的自媒体新闻系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·mysql数据库·自媒体新闻管理系统
9624565 分钟前
补打一条卡,为什么要从前一天重新算:人工补录与实时重算业务复盘
java·mysql·kafka
codebolt8 分钟前
C++程序crash分析和内存检测
开发语言·c++
Java后端的Ai之路14 分钟前
01、Java并发编程:学习攻略如何才能学好并发编程?
java·开发语言·学习
Js.Tx15 分钟前
【具体数学 Concrete Mathematics】2.1.7 无限和式
算法·具体数学
ShineWinsu16 分钟前
对于Qt:QLabel常见属性的解析
c++·qt·面试·笔试·gui·标签·qlabel
FPGA信号处理22 分钟前
【 凸优化】第六讲:求解器与支持向量机
算法·机器学习·支持向量机
专注仿真24 分钟前
支持向量机(SVM)算法详解与代码实例
算法·机器学习·支持向量机
Pniubi28 分钟前
力扣42接雨水(动态规划法)
算法·leetcode·职场和发展