Skip to content

Commit c6fcafd

Browse files
committed
convert bst to greater tree
1 parent 6da2823 commit c6fcafd

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package tree;
2+
3+
import common.TreeNode;
4+
5+
/**
6+
* Definition for a binary tree node.
7+
* public class TreeNode {
8+
* int val;
9+
* TreeNode left;
10+
* TreeNode right;
11+
* TreeNode() {}
12+
* TreeNode(int val) { this.val = val; }
13+
* TreeNode(int val, TreeNode left, TreeNode right) {
14+
* this.val = val;
15+
* this.left = left;
16+
* this.right = right;
17+
* }
18+
* }
19+
*/
20+
21+
// https://leetcode.com/problems/convert-bst-to-greater-tree/
22+
public class ConvertBSTToGreaterTree {
23+
24+
private int sum = 0;
25+
26+
public TreeNode convertBST(TreeNode root) {
27+
if (root != null) {
28+
convertBST(root.right);
29+
sum += root.val;
30+
root.val = sum;
31+
convertBST(root.left);
32+
}
33+
34+
return root;
35+
}
36+
37+
public static void main(String[] args) {
38+
//TreeNode left1 = new TreeNode(2);
39+
//TreeNode right1 = new TreeNode(13);
40+
//
41+
//TreeNode root = new TreeNode(5, left1, right1);
42+
43+
TreeNode left1 = new TreeNode(1);
44+
TreeNode right1 = new TreeNode(3);
45+
46+
TreeNode rootLeft = new TreeNode(2, left1, right1);
47+
48+
TreeNode left2 = new TreeNode(6);
49+
TreeNode right2 = new TreeNode(15);
50+
51+
TreeNode rootRight = new TreeNode(13, left2, right2);
52+
53+
TreeNode root = new TreeNode(5, rootLeft, rootRight);
54+
55+
root.toString();
56+
ConvertBSTToGreaterTree obj = new ConvertBSTToGreaterTree();
57+
TreeNode result = obj.convertBST(root);
58+
result.toString();
59+
}
60+
}

0 commit comments

Comments
 (0)