661. 把二叉搜索树转化成更大的树
给定二叉搜索树(BST),将其转换为更大的树,使原始BST上每个节点的值都更改为在原始树中大于等于该节点值的节点值之和(包括该节点)。
样例
样例1:
输入 : {5,2,13}
5
/ \
2 13
输出 : {18,20,13}
18
/ \
20 13
样例2:
输入 : {5,3,15}
5
/ \
3 15
输出 : {20,23,15}
20
/ \
23 15
输入测试数据
(
每行一个参数
)
如何理解测试数据?
/**
* Definition of TreeNode:
* public class TreeNode {
* public int val;
* public TreeNode left, right;
* public TreeNode(int val) {
* this.val = val;
* this.left = this.right = null;
* }
* }
*/
public class Solution {
int sum=0;
/**
* @param root: the root of binary tree
* @return: the new root
*/
public TreeNode convertBST(TreeNode root) {
// write your code here
if (root==null)return root;
convertBST(root.right);
sum=root.val+sum;
root.val=sum;
convertBST(root.left);
return root;
}
}