1. 题目
给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。
2. 解题
class Solution {//递归写法TreeNode *ans = NULL;
public:TreeNode* searchBST(TreeNode* root, int val) {if(root == NULL)return root;if(ans)return ans;if(root->val == val){ans = root;return ans;}else if(root->val < val)searchBST(root->right, val);elsesearchBST(root->left, val);return ans;}
};
class Solution {//循环写法
public:TreeNode* searchBST(TreeNode* root, int val) {while(root){if(root->val == val)return root;else if(root->val < val)root = root->right;elseroot = root->left;}return NULL;}
};