目录
题目:
代码(首刷看解析 2024年1月31日):
class Solution {
public:
int pre = 0;
TreeNode* convertBST(TreeNode* root) {
if (!root) return nullptr;
root->right = convertBST(root->right);
if (pre == 0) {
pre = root->val;
}else {
root->val += pre;
pre = root->val;
}
root->left = convertBST(root->left);
return root;
}
};
代码(二刷自解 2024年5月22日)
class Solution {
public:
// 右中左遍历,递加
int sum;
void helper(TreeNode* root) {
if (!root) return;
helper(root->right);
sum += root->val;
root->val = sum;
//cout<<"root:"<<root->val<<" sum:"<<sum<<endl;
helper(root->left);
}
TreeNode* convertBST(TreeNode* root) {
sum = 0;
helper(root);
return root;
}
};