-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
35 lines (26 loc) · 787 Bytes
/
index.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
/*
Given a Binary Search Tree (BST), convert it to a Greater Tree such that every
key of the original BST is changed to the original key plus sum of all keys
greater than the original key in BST.
Example:
Input: The root of a Binary Search Tree like this:
5
/ \
2 13
Output: The root of a Greater Tree like this:
18
/ \
20 13
*/
function convertToGreaterTree(tree, sum = 0/*move the sum out of func, It will
reduce space complexity*/) {
if (!tree) return sum;
sum = tree.val += convertToGreaterTree(tree.right, sum);
sum = convertToGreaterTree(tree.left, sum);
return sum;
}
function TreeNode(val, left = null, right = null) {
this.val = val;
this.left = left;
this.right = right;
}