[1st version] not so good.... #include <iostream> #include <queue> using namespace std; typedef struct TreeNode TreeNode; struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* trimBST(TreeNode* root, int L, int R) { if (!root) { return root; } TreeNode *lChild = trimBST(root->left, L, R); TreeNode *rChild = trimBST(root->right, L, R); TreeNode *temp, *newRoot; newRoot = root; if (root->val <...