/*
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.
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
*/
class Convert_BST_to_Greater_Tree: NSObject {
var sum = 0
func convertBST(_ root: TreeNode?) -> TreeNode? {
convert(root)
return root
}
func convert(_ root: TreeNode?) {
if root == nil {
return
} else {
convert(root?.right)
root!.val += sum;
sum = root!.val;
convert(root?.left)
}
}
}
网友评论