1.右节点不会增加
2.根节点只加右节点
3.左节点加根和右节点
4.要求最大的BST
所以递归顺序是先加根节点,再去加左节点的
class Solution
{
public:
int sums = 0;
void rec(TreeNode *root)
{
if (!root)
return;
if (root->right)
rec(root->right);
root->val = (sums += root->val);
if (root->left)
rec(root->left);
}
TreeNode *convertBST(TreeNode *root)
{
rec(root);
return root;
}
};