-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrange-sum.js
69 lines (41 loc) · 1.25 KB
/
range-sum.js
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
Given the root node of a binary search tree and two integers low and high, return the sum of values of all nodes with a value in the inclusive range [low, high].
Example 1:
Input: root = [10,5,15,3,7,null,18], low = 7, high = 15
Output: 32
Explanation: Nodes 7, 10, and 15 are in the range [7, 15]. 7 + 10 + 15 = 32.
Example 2:
Input: root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10
Output: 23
Explanation: Nodes 6, 7, and 10 are in the range [6, 10]. 6 + 7 + 10 = 23.
*/
// Using BST
var rangeSumBST = function(root, low, high) {
let queue = []
let sum = 0
let node = root
queue.push(node)
while(queue.length){
node = queue.shift()
console.log(node.val)
if(node.val >= low && node.val <= high){
sum = sum + node.val
}
if (node.left) queue.push(node.left)
if (node.right) queue.push(node.right)
}
return sum
};
// Using DST
var rangeSumBST = function(root, low, high) {
let sum = 0
function traverse(node){
if(node.val >= low && node.val <= high){
sum += node.val
}
if(node.left) traverse(node.left)
if(node.right) traverse(node.right)
}
traverse(root)
return sum
};