gpt4 book ai didi

javascript - 尝试查找 BST 的范围和时递归错误

转载 作者:行者123 更新时间:2023-11-30 13:52:51 25 4
gpt4 key购买 nike

我正在练习算法并解决这个经典问题。有很多解决方案,我正在尝试使用 Javascript 来解决它。我将在下面发布问题和我的内容:

Given the root node of a binary search tree, return the sum of values of all nodes with value between L and R (inclusive).

The binary search tree is guaranteed to have unique values.

Example 1:
Input: root = [10,5,15,3,7,null,18], L = 7, R = 15 Output: 32
var rangeSumBST = function(root, L, R) {
let result = 0;

if (root === null) return 0;
if (root.val >= L && root.val <= R) {
result += root.val
}
rangeSumBST(root.left, L, R)
rangeSumBST(root.right, L, R)

return result
};
// Output is 10 instead of 32

最佳答案

您正在执行 rangeSumBST(root.left, L, R) 而不使用它们的结果。最后只得到第一个节点值。改用:

var rangeSumBST = function(root, L, R) {
let result = 0;

if (root === null) return 0;
if (root.val >= L && root.val <= R) {
result += root.val
}
let left = rangeSumBST(root.left, L, R)
let right = rangeSumBST(root.right, L, R)

return result + left + right;
};

关于javascript - 尝试查找 BST 的范围和时递归错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57894612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com