题目描述
给定二叉搜索树(BST)的根节点 root 和一个整数值 val。
你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。
代码
递归法
class Solution {
public:TreeNode* searchBST(TreeNode* root, int val) {if (root == nullptr || root->val == val) return root;TreeNode* res = nullptr;if (root->val > val) res = searchBST(root->left, val);else if (root->val < val) res = searchBST(root->right, val);return res;}
};class Solution {
public:TreeNode* searchBST(TreeNode* root, int val) {if (root == nullptr || root->val == val) return root;if (root->val > val) return searchBST(root->left, val);else return searchBST(root->right, val);}
};
迭代法
class Solution {
public:TreeNode* searchBST(TreeNode* root, int val) {while (root) {if (root->val == val) return root;root = root->val > val ? root->left : root->right;}return nullptr;}
};