Convert BST to Greater Tree LeetCode solution in Java

1
class Solution {
2
public TreeNode convertBST(TreeNode root) {
3
if (root != null) {
4

5
List<Integer> nodesValues = new ArrayList<>();
6
helperNodesVales(root, nodesValues);
7
traverseAndAdd(root, nodesValues);
8

9
return root;
10
}
11
return null;
12
}
13

14
private void helperNodesVales(TreeNode root, List<Integer> nodesValues) {
15
if (root != null) {
16
nodesValues.add(root.val);
17
}
18
if (root.right != null) {
19
helperNodesVales(root.right, nodesValues);
20
}
21
if (root.left != null) {
22
helperNodesVales(root.left, nodesValues);
23
}
24
if (root == null) {
25
return;
26
}
27
}
28

29
private void traverseAndAdd(TreeNode root, List<Integer> nodesValues) {
30
if (root != null) {
31
int rootVal = root.val;
32
for (int i = 0; i < nodesValues.size(); i++) {
33
if (nodesValues.get(i) > rootVal) root.val += nodesValues.get(i);
34
}
35
}
36
if (root.right != null) {
37
traverseAndAdd(root.right, nodesValues);
38
}
39
if (root.left != null) {
40
traverseAndAdd(root.left, nodesValues);
41
}
42
if (root == null) {
43
return;
44
}
45
}
46
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0