我是靠谱客的博主 甜甜麦片,这篇文章主要介绍【手把手带你刷LeetCode】——09.二叉搜索树的范围和(递归法)原题:二叉搜索树的范围和,现在分享给大家,希望可以做个参考。

【前言】

今天是力扣打卡第9天!

Fighting!!

原题:二叉搜索树的范围和

题目描述:

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

示例1:

 

复制代码
1
2
输入:root = [10,5,15,3,7,null,18], low = 7, high = 15 输出:32

 示例2:

复制代码
1
2
输入:root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10 输出:23

 题解:

做递归题目就是将每一层执行的递归图画出来,不能懒,画出来去感受,用不了几题,你会发现递归的解法真的很妙。

代码执行:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ int rangeSumBST(struct TreeNode* root, int low, int high){ //方法一:递归法 //找边界 if(root == NULL){ return 0; } //左子树 int leftSum = rangeSumBST(root->left, low, high);//有点分治的味儿了 //右子树 int rightSum = rangeSumBST(root->right, low, high); int result = leftSum + rightSum; //判断根节点值 if(root->val >= low && root->val <= high){ result += root->val; } return result; }

复杂度分析:

时间复杂度:O(N)----二叉搜索树节点的个数

空间复杂度:O(N)----递归调用栈的深度

总结:

今天是力扣打卡第9天!

时光不老,我们不散,咱们明天再见!!

送给每一位为梦想坚持的小友们!!!

 

最后

以上就是甜甜麦片最近收集整理的关于【手把手带你刷LeetCode】——09.二叉搜索树的范围和(递归法)原题:二叉搜索树的范围和的全部内容,更多相关【手把手带你刷LeetCode】——09.二叉搜索树内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部