LeetCode题解:938. 二叉搜索树的范围和,递归,JavaScript,详细注释
原题链接: 938. 二叉搜索树的范围和
解题思路:
- 使用中序遍历,即可按顺序获取到二叉搜索树的每个节点。
- 当节点的值在
[low, high]
之间,就进行加和。
/**
* @param {TreeNode} root
* @param {number} low
* @param {number} high
* @return {number}
*/
var rangeSumBST = function (root, low, high) {
let sum = 0 // 缓存结点值之和
// 使用中序遍历遍历二叉搜索树
function traversal(node) {
// 当遇到空节点则退出递归
if (!node) {
return null
}
// 向左子树遍历
traversal(node.left)
// 使用中序遍历,按顺序获取每个节点
// 节点的值在[low, high]之间,就进行加和
if (node.val >= low && node.val <= high) {
sum += node.val
}
// 向右子树遍历
traversal(node.right)
}
traversal(root)
return sum
}
转载自:https://juejin.cn/post/7168703456436289567