LeetCode题解:938. 二叉搜索树的范围和,递归,JavaScript,详细注释
chencl1986 opened this issue · comments
Lee Chen commented
原题链接:
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
}