天天看點

【LeetCode 47】669.修剪二叉搜尋樹

【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;
    }
};