class Solution {
public:
int sum = 0;
void traversal(TreeNode* root) {
if (root == nullptr) return;
if (root->right != nullptr) traversal(root->right);
sum += root->val;
root->val = sum;
if (root->left != nullptr) traversal(root->left);
}
TreeNode* convertBST(TreeNode* root) {
traversal(root);
return root;
}
};
思路:就是以右中左的顺序进行遍历,然后定义一个sum进行累加赋值。