1.问题描述:
给定二叉搜索树(BST),将其转换为更大的树,使原始BST上每个节点的值都更改为在原始树中大于等于该节点值得节点值之和(包括该节点)。
2.样例:
Given a binary search Tree `{5,2,13}`:
5
/ \
2 13
Return the root of new tree
18
/ \
20 13
3.代码:
"""
Definition of TreeNode:
class TreeNode:
def __init__(self, val):
self.val = val
self.left, self.right = None, None
"""
class Solution:
"""
@param: root: the root of binary tree
@return: the new root
"""
def __init__(self):
self.sum=0
def convertBST(self, root):
# write your code here
if root is None:
return None
self.convertBST(root.right);
self.sum += root.val;
root.val = self.sum;
self.convertBST(root.left);
return root;