Skip to content

Commit 82da3a1

Browse files
solves bst to greater tree
1 parent 4c4b62f commit 82da3a1

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
| 521 | [Longest Uncommon Subsequence I](https://leetcode.com/problems/longest-uncommon-subsequence-i) | Easy | [![Java](assets/java.png)](src/LongestUncommonSubsequenceI.java) [![Python](assets/python.png)](python/longest_uncommon_subsequence_I.py) |
142142
| 530 | [Minimum Absolute Difference in BST](https://leetcode.com/problems/minimum-absolute-difference-in-bst) | Easy | [![Java](assets/java.png)](src/MinimumAbsoluteDifferenceInBST.java) [![Python](assets/python.png)](python/minimum_absolute_difference_in_bst.py) |
143143
| 532 | [K - Diff Pairs in Array](https://leetcode.com/problems/k-diff-pairs-in-an-array) | Easy | [![Java](assets/java.png)](src/KDiffPairsInAnArray.java) [![Python](assets/python.png)](python/k_dif_pairs_in_an_array.py) |
144-
| 538 | [Convert BST to Greater Tree](https://leetcode.com/problems/convert-bst-to-greater-tree) | Easy | |
144+
| 538 | [Convert BST to Greater Tree](https://leetcode.com/problems/convert-bst-to-greater-tree) | Easy | [![Java](assets/java.png)](src/ConvertBSTToGreaterTree.java) [![Python](assets/python.png)](python/convert_bst_to_greater_tree.py) |
145145
| 541 | [Reverse String II](https://leetcode.com/problems/reverse-string-ii) | Easy | |
146146
| 543 | [Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree) | Easy | |
147147
| 551 | [Student Attendance Record I](https://leetcode.com/problems/student-attendance-record-i) | Easy | |

python/convert_bst_to_greater_tree.py

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Definition for a binary tree node.
2+
class TreeNode:
3+
def __init__(self, val=0, left=None, right=None):
4+
self.val = val
5+
self.left = left
6+
self.right = right
7+
8+
9+
class Solution:
10+
def __init__(self):
11+
self.value = 0
12+
13+
def computeGreaterTree(self, root: TreeNode):
14+
if root is None: return
15+
self.computeGreaterTree(root.right)
16+
root.val += self.value
17+
self.value = root.val
18+
self.computeGreaterTree(root.left)
19+
20+
def convertBST(self, root: TreeNode) -> TreeNode:
21+
self.computeGreaterTree(root)
22+
return root

src/ConvertBSTToGreaterTree.java

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
public class ConvertBSTToGreaterTree {
2+
int value = 0;
3+
4+
public TreeNode convertBST(TreeNode root) {
5+
computeGreaterTree(root);
6+
return root;
7+
}
8+
9+
private void computeGreaterTree(TreeNode root) {
10+
if (root == null) return;
11+
computeGreaterTree(root.right);
12+
root.val += value;
13+
computeGreaterTree(root.left);
14+
}
15+
}

0 commit comments

Comments
 (0)