目录
题目:
代码(首刷看解析 2024年1月31日):
class Solution {
public:
TreeNode* trimBST(TreeNode* root, int low, int high) {
if (!root) return root;
if (root->val < low) {
TreeNode* node = trimBST(root->right,low,high);
return node;
}
if (root->val > high) {
TreeNode* node = trimBST(root->left,low,high);
return node;
}
root->left = trimBST(root->left, low, high);
root->right = trimBST(root->right, low, high);
return root;
}
};
代码(二刷看解析 2024年5月22日)
获取不符合规矩的节点,找到其左右子树中符合规矩的节点,将其接给其父节点;用递归函数的返回值接~
class Solution {
public:
TreeNode* trimBST(TreeNode* root, int low, int high) {
if (!root) return nullptr;
if (root->val < low) return trimBST(root->right, low, high);
if (root->val > high) return trimBST(root->left, low, high);
root->left = trimBST(root->left, low, high);
root->right = trimBST(root->right, low, high);
return root;
}
};