【LeetCode 47】669.修剪二叉搜尋樹
文章目錄
- 【LeetCode 47】669.修剪二叉搜尋樹
- 一、題意
- 二、解答過程
一、題意
二、解答過程
class Solution {
public:
TreeNode* trimBST(TreeNode* root, int low, int high) {
if(root==NULL) return NULL;
//目前節點的元素小于low,去尋找右子樹,傳回右子樹符合條件的節點
if(root->val<low)
{
//尋找符合[low,high]區間的節點
TreeNode* right=trimBST(root->right,low,high);
return right;
}
//目前節點的元素大于low,去尋找左子樹,傳回左子樹符合條件的節點
if(root->val>high)
{
//尋找符合[low,high]區間的節點
TreeNode* left=trimBST(root->left,low,high);
return left;
}
//周遊左右子樹
root->left=trimBST(root->left,low,high);
root->right=trimBST(root->right,low,high);
return root;
}
};